|
45588
|
UW PICO 5.09 UW PICO 5.09 New Buffer
[ Read 137 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
Last login: Fri Apr 17 10:32:22 on ttys013
/Users/lukas/.zprofile:138: unmatched "
/Users/lukas/.zprofile:138: unmatched "
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % veu
zsh: command not found: veu
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % ssh jiminny-eu-ecs1
Enter MFA code for arn:aws:iam::438740370364:mfa/[EMAIL]:
Warning: Permanently added 'jiminny-eu-ecs1' (ED25519) to the list of known hosts.
A newer release of "Amazon Linux" is available.
Version 2023.10.20260105:
Version 2023.10.20260120:
Version 2023.10.20260202:
Version 2023.10.20260216:
Version 2023.10.20260302:
Version 2023.10.20260325:
Version 2023.10.20260330:
Version 2023.11.20260406:
Version 2023.11.20260413:
Version 2023.8.20250707:
Version 2023.8.20250715:
Version 2023.8.20250721:
Version 2023.8.20250808:
Version 2023.8.20250818:
Version 2023.8.20250908:
Version 2023.8.20250915:
Version 2023.9.20250929:
Version 2023.9.20251014:
Version 2023.9.20251020:
Version 2023.9.20251027:
Version 2023.9.20251105:
Version 2023.9.20251110:
Version 2023.9.20251117:
Version 2023.9.20251208:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_
~\_ ####_
~~ \_#####\
~~ \###|
~~ \#/ ___ Amazon Linux 2023 (ECS Optimized)
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
For documentation, visit [URL_WITH_CREDENTIALS] ~]$ docker exec -it $(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook redis --key-type ids --detailed
INFO Scanning Redis keys (type: ids).
Total keys found [PASSWORD_DOTS] 87
Total IDs across all keys [PASSWORD_DOTS] 18,991
📊 Memory Overview
Total Memory [PASSWORD_DOTS] 1.17 MB
ids keys [PASSWORD_DOTS] 1.17 MB
batch_sync_deal:ids:338:all (Formalize - 432)
Config ID: 338
Type: set
Memory: 582.22 KB
TTL: 23h 26m 22s
Count: 9314
Sample: 36225705250, 29787925122, 329967686878
batch_sync_contact:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 203.66 KB
TTL: 15h 27m 1s
Count: 3257
Sample: 4723151, 569384381669, 751397913846
batch_sync_contact:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 159.54 KB
TTL: 23h 58m 24s
Count: 2551
Sample: 7855597, 214629714698, 1081551
batch_sync_company:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 143.97 KB
TTL: 15h 26m 38s
Count: 2302
Sample: 97509907664, 287839612106, 13347420118
batch_sync_company:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 28.54 KB
TTL: 23h 57m 58s
Count: 455
Sample: 53416555927, 5299782086, 48272143029
batch_sync_company:ids:346:all (Global Expansion - 444)
Config ID: 346
Type: set
Memory: 17.66 KB
TTL: 23h 59m 57s
Count: 281
Sample: 54084980525, 31037091957, 16036051109
batch_sync_contact:ids:346:all (Global Expansion - 444)
Config ID: 346
Type: set
Memory: 12.6 KB
TTL: 23h 59m 57s
Count: 200
Sample: 216133633092, 216059621965, 216123582828
batch_sync_contact:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 4.35 KB
TTL: 23h 42m 32s
Count: 68
Sample: 751746229489, 662801482974, 751204849893
batch_sync_company:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.6 KB
TTL: 8h 7m 26s
Count: 56
Sample: 293769448657, 7905289206, 6994524653
batch_sync_contact:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.47 KB
TTL: 22h 45m 52s
Count: 54
Sample: 730208, 752394791155, 759217738995
batch_sync_deal:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 3.47 KB
TTL: 9h 4m 51s
Count: 54
Sample: 364507398345, 494814103757, 494016526555
batch_sync_company:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 3.41 KB
TTL: 23h 55m 1s
Count: 53
Sample: 399250577648, 426553672928, 379424069826
batch_sync_deal:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.04 KB
TTL: 8h 7m 33s
Count: 47
Sample: 498503490753, 498500636859, 498501354684
batch_sync_contact:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.6 KB
TTL: 23h 59m 35s
Count: 24
Sample: 753335460029, 759353955559, 600494578893
batch_sync_company:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.47 KB
TTL: 23h 59m 22s
Count: 22
Sample: 23755815000, 5684894521, 3972787939
batch_sync_deal:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.47 KB
TTL: 23h 55m 17s
Count: 22
Sample: 499035527382, 494192151741, 499111919842
batch_sync_contact:ids:488:all (MakeMyHouseGreen - 567)
Config ID: 488
Type: set
Memory: 1.41 KB
TTL: 23h 57m 17s
Count: 21
Sample: 935601, 4269001, 2258
batch_sync_contact:ids:170:all (LutherOne - 199)
Config ID: 170
Type: set
Memory: 996 B
TTL: 23h 59m 49s
Count: 14
Sample: 6438163, 18894909, 131340729177
batch_sync_contact:ids:364:all (Lead Forensics - 190)
Config ID: 364
Type: set
Memory: 932 B
TTL: 23h 56m 58s
Count: 13
Sample: 103762162328, 103730206004, 103746035125
batch_sync_contact:ids:124:all (Intruder - 149)
Config ID: 124
Type: set
Memory: 868 B
TTL: 23h 53m 21s
Count: 12
Sample: 209000212364, 72073201, 32825651463
batch_sync_contact:ids:70:all (Scoro - 93)
Config ID: 70
Type: set
Memory: 804 B
TTL: 23h 49m 7s
Count: 11
Sample: 548911252691, 549509632216, 549499217106
batch_sync_contact:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 804 B
TTL: 23h 55m 11s
Count: 11
Sample: 215753056547, 215474268483, 215540281168
batch_sync_contact:ids:363:all (Global Group - 456)
Config ID: 363
Type: set
Memory: 548 B
TTL: 23h 57m 2s
Count: 7
Sample: 156053546908, 14789232785, 1569201
batch_sync_deal:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 548 B
TTL: 23h 54m 15s
Count: 7
Sample: 498986026223, 17924102876, 498928162009
batch_sync_deal:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 548 B
TTL: 23h 59m 34s
Count: 7
Sample: 498984577267, 499024879840, 496749330660
batch_sync_company:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 484 B
TTL: 23h 53m 55s
Count: 6
Sample: 12886901694, 47800033493, 426487803113
batch_sync_company:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 484 B
TTL: 23h 53m 12s
Count: 6
Sample: 54056532238, 25291493956, 52568117585
batch_sync_contact:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 484 B
TTL: 23h 53m 55s
Count: 6
Sample: 25784346850, 758403684599, 758356838593
batch_sync_contact:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 420 B
TTL: 23h 51m 15s
Count: 5
Sample: 759339342027, 6476279789, 759338177732
batch_sync_deal:ids:241:all (PatentRenewal.com ApS - 306)
Config ID: 241
Type: set
Memory: 420 B
TTL: 23h 59m 34s
Count: 5
Sample: 57554678843, 59164863320, 40205117839
batch_sync_company:ids:175:all (Team iAM - 203)
Config ID: 175
Type: set
Memory: 356 B
TTL: 23h 52m 11s
Count: 4
Sample: 31289463313, 53432109235, 47337393078
batch_sync_contact:ids:197:all (Kindly - 264)
Config ID: 197
Type: set
Memory: 356 B
TTL: 23h 56m 33s
Count: 4
Sample: 759337959662, 759340603582, 759336916201
batch_sync_contact:ids:308:all (Foodles - 380)
Config ID: 308
Type: set
Memory: 356 B
TTL: 23h 47m 13s
Count: 4
Sample: 209605481386, 216074957452, 216074957451
batch_sync_contact:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 356 B
TTL: 23h 59m 38s
Count: 4
Sample: 758403694783, 6338351, 755171302642
batch_sync_contact:ids:485:all (LATUS Group - 563)
Config ID: 485
Type: set
Memory: 356 B
TTL: 23h 59m 51s
Count: 4
Sample: 216014615839, 216124673101, 215534275979
batch_sync_company:ids:170:all (LutherOne - 199)
Config ID: 170
Type: set
Memory: 292 B
TTL: 23h 55m 25s
Count: 3
Sample: 5061344699, 8979817578, 53544705830
batch_sync_company:ids:197:all (Kindly - 264)
Config ID: 197
Type: set
Memory: 292 B
TTL: 23h 56m 26s
Count: 3
Sample: 426652716232, 426652949738, 426671486159
batch_sync_company:ids:436:all (Moxso - 519)
Config ID: 436
Type: set
Memory: 292 B
TTL: 23h 54m 5s
Count: 3
Sample: 5637526753, 9027001061, 426485659872
batch_sync_company:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 292 B
TTL: 23h 49m 25s
Count: 3
Sample: 12009203674, 12897632476, 331995461840
batch_sync_contact:ids:130:all (Latana Brand Tracking - 155)
Config ID: 130
Type: set
Memory: 292 B
TTL: 23h 44m 14s
Count: 3
Sample: 216074963815, 216074963816, 216074963817
batch_sync_contact:ids:175:all (Team iAM - 203)
Config ID: 175
Type: set
Memory: 292 B
TTL: 23h 52m 37s
Count: 3
Sample: 212581164888, 216121454962, 216121861967
batch_sync_contact:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 292 B
TTL: 23h 49m 25s
Count: 3
Sample: 15081981630, 28607253707, 589985456367
batch_sync_deal:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 292 B
TTL: 23h 54m 43s
Count: 3
Sample: 498984572105, 498986026222, 498987447516
batch_sync_company:ids:70:all (Scoro - 93)
Config ID: 70
Type: set
Memory: 228 B
TTL: 23h 48m 59s
Count: 2
Sample: 308374847674, 426652674241
batch_sync_company:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 228 B
TTL: 23h 57m 6s
Count: 2
Sample: 612188920, 1045770343
batch_sync_contact:ids:112:all (Switchee - 137)
Config ID: 112
Type: set
Memory: 228 B
TTL: 23h 50m 12s
Count: 2
Sample: 216074959999, 216074960000
batch_sync_contact:ids:201:all (THRIVE - 266)
Config ID: 201
Type: set
Memory: 228 B
TTL: 23h 59m 17s
Count: 2
Sample: 17229652, 23550651
batch_sync_contact:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 228 B
TTL: 23h 48m 32s
Count: 2
Sample: 9236122316, 108257234125
batch_sync_contact:ids:307:all (Story Terrace Inc - 379)
Config ID: 307
Type: set
Memory: 228 B
TTL: 23h 54m 36s
Count: 2
Sample: 216118037022, 216120038928
batch_sync_contact:ids:319:all (MySalesCoach - 400)
Config ID: 319
Type: set
Memory: 228 B
TTL: 23h 51m 16s
Count: 2
Sample: 191355036878, 759224982717
batch_sync_contact:ids:335:all (Eletive - 429)
Config ID: 335
Type: set
Memory: 228 B
TTL: 23h 58m 13s
Count: 2
Sample: 159795767866, 757397522679
batch_sync_contact:ids:339:all (inspera.no - 436)
Config ID: 339
Type: set
Memory: 228 B
TTL: 23h 55m 54s
Count: 2
Sample: 183336486505, 216074960287
batch_sync_contact:ids:412:all (Antavo - 500)
Config ID: 412
Type: set
Memory: 228 B
TTL: 23h 50m 30s
Count: 2
Sample: 644080299229, 705317319867
batch_sync_deal:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 228 B
TTL: 23h 51m 21s
Count: 2
Sample: 13955519955, 499101468869
batch_sync_deal:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 228 B
TTL: 23h 49m 0s
Count: 2
Sample: 499101779135, 499117828335
batch_sync_company:ids:95:all (Cronofy - 118)
Config ID: 95
Type: set
Memory: 164 B
TTL: 23h 44m 9s
Count: 1
Sample: 54084980481
batch_sync_company:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 164 B
TTL: 23h 51m 18s
Count: 1
Sample: 231946184895
batch_sync_company:ids:112:all (Switchee - 137)
Config ID: 112
Type: set
Memory: 164 B
TTL: 23h 45m 50s
Count: 1
Sample: 30902131597
batch_sync_company:ids:124:all (Intruder - 149)
Config ID: 124
Type: set
Memory: 164 B
TTL: 23h 49m 59s
Count: 1
Sample: 19200117829
batch_sync_company:ids:130:all (Latana Brand Tracking - 155)
Config ID: 130
Type: set
Memory: 164 B
TTL: 23h 43m 46s
Count: 1
Sample: 3412118684
batch_sync_company:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 53m 53s
Count: 1
Sample: 2492067355
batch_sync_company:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 41m 16s
Count: 1
Sample: 54051603071
batch_sync_company:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 164 B
TTL: 23h 48m 34s
Count: 1
Sample: 45363246315
batch_sync_company:ids:295:all (APLYiD - 367)
Config ID: 295
Type: set
Memory: 164 B
TTL: 23h 43m 38s
Count: 1
Sample: 426645956821
batch_sync_company:ids:308:all (Foodles - 380)
Config ID: 308
Type: set
Memory: 164 B
TTL: 23h 43m 36s
Count: 1
Sample: 4623764126
batch_sync_company:ids:485:all (LATUS Group - 563)
Config ID: 485
Type: set
Memory: 164 B
TTL: 23h 59m 51s
Count: 1
Sample: 16393088676
batch_sync_contact:ids:81:all (Hurree - 104)
Config ID: 81
Type: set
Memory: 164 B
TTL: 23h 52m 48s
Count: 1
Sample: 216123172492
batch_sync_contact:ids:86:all (Teamtailor - 109)
Config ID: 86
Type: set
Memory: 164 B
TTL: 5h 35m 55s
Count: 1
Sample: 128480851
batch_sync_contact:ids:95:all (Cronofy - 118)
Config ID: 95
Type: set
Memory: 164 B
TTL: 23h 44m 9s
Count: 1
Sample: 216119828808
batch_sync_contact:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 43m 42s
Count: 1
Sample: 185805924409
batch_sync_contact:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 41m 16s
Count: 1
Sample: 216122837601
batch_sync_contact:ids:255:all (Screendragon - 324)
Config ID: 255
Type: set
Memory: 164 B
TTL: 23h 44m 22s
Count: 1
Sample: 215982276420
batch_sync_contact:ids:278:all (Akixi - 348)
Config ID: 278
Type: set
Memory: 164 B
TTL: 23h 46m 52s
Count: 1
Sample: 758404365499
batch_sync_contact:ids:284:all (Brickflow (Property Funding Hub Ltd) - 354)
Config ID: 284
Type: set
Memory: 164 B
TTL: 23h 44m 47s
Count: 1
Sample: 195262486661
batch_sync_contact:ids:295:all (APLYiD - 367)
Config ID: 295
Type: set
Memory: 164 B
TTL: 23h 44m 11s
Count: 1
Sample: 759223062753
batch_sync_contact:ids:322:all (Talkative - 403)
Config ID: 322
Type: set
Memory: 164 B
TTL: 23h 56m 55s
Count: 1
Sample: 751262016755
batch_sync_contact:ids:367:all (Sensat - 459)
Config ID: 367
Type: set
Memory: 164 B
TTL: 23h 51m 33s
Count: 1
Sample: 215694537008
batch_sync_contact:ids:403:all (Fundrella - 491)
Config ID: 403
Type: set
Memory: 164 B
TTL: 23h 43m 28s
Count: 1
Sample: 147101
batch_sync_contact:ids:436:all (Moxso - 519)
Config ID: 436
Type: set
Memory: 164 B
TTL: 23h 54m 15s
Count: 1
Sample: 294701
batch_sync_contact:ids:491:all (CreateFuture - 570)
Config ID: 491
Type: set
Memory: 164 B
TTL: 23h 51m 48s
Count: 1
Sample: 214629839743
batch_sync_deal:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 54m 11s
Count: 1
Sample: 59230347609
batch_sync_deal:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 50m 5s
Count: 1
Sample: 58878310503
batch_sync_deal:ids:255:all (Screendragon - 324)
Config ID: 255
Type: set
Memory: 164 B
TTL: 23h 44m 20s
Count: 1
Sample: 59243074931
batch_sync_deal:ids:335:all (Eletive - 429)
Config ID: 335
Type: set
Memory: 164 B
TTL: 23h 39m 13s
Count: 1
Sample: 498499653826
batch_sync_deal:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 164 B
TTL: 5h 19m 0s
Count: 1
Sample: 10644871427
batch_sync_deal:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 164 B
TTL: 2h 41m 0s
Count: 1
Sample: 493652735187
batch_sync_deal:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 164 B
TTL: 23h 47m 59s
Count: 1
Sample: 59186288665
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook redis --key-type ids --detailed -T 459
INFO Scanning Redis keys (type: ids).
Total keys found [PASSWORD_DOTS] 1
Total IDs across all keys [PASSWORD_DOTS] 1
📊 Memory Overview
Total Memory [PASSWORD_DOTS] 164 B
ids keys [PASSWORD_DOTS] 164 B
batch_sync_contact:ids:367:all (Sensat - 459)
Config ID: 367
Type: set
Memory: 164 B
TTL: 23h 51m 6s
Count: 1
Sample: 215694537008
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459
INFO Webhook Metrics — 2026-04-17.
📊 Webhook Metrics Summary
==========================================
Date: 2026-04-17
Filters: Config: 367
Total Teams: 1
Total Webhooks: 7
🏢 Config 367 (Sensat - 459) - 7 webhooks
📦 contact: 6 webhooks
🔔 property_change: 6 events, 5 properties
📦 deal: 1 webhooks
🔔 property_change: 1 events, 1 properties
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459 --from 2026-04-15
INFO Managing webhook metrics for date range.
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Config ID [PASSWORD_DOTS] 367
📊 Range Summary
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Total Days [PASSWORD_DOTS] 3
Oldest Data Age [PASSWORD_DOTS] 2.0 days ago
Total Webhooks [PASSWORD_DOTS] 1,065,651
Daily Average [PASSWORD_DOTS] 355,217.00
Active Companies [PASSWORD_DOTS] 89
🏢 Company Details
Company 367 (Sensat - 459)
Total Webhooks: 796
Days Active: 3/3
Daily Average: 265.33
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459 --from 2026-04-15 -D
INFO Managing webhook metrics for date range.
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Config ID [PASSWORD_DOTS] 367
📊 Range Summary
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Total Days [PASSWORD_DOTS] 3
Oldest Data Age [PASSWORD_DOTS] 2.0 days ago
Total Webhooks [PASSWORD_DOTS] 1,065,677
Daily Average [PASSWORD_DOTS] 355,225.67
Active Companies [PASSWORD_DOTS] 89
📅 Daily Breakdown
2026-04-15: 335,647 webhooks, 88 companies active
2026-04-16: 671,679 webhooks, 88 companies active
2026-04-17: 58,351 webhooks, 68 companies active
🏢 Company Details
Company 367 (Sensat - 459)
Total Webhooks: 796
Days Active: 3/3
Daily Average: 265.33
company (114 total, avg: 38)
association_change: 92 total, avg: 46, active: 2 days
creation: 3 total, avg: 1.5, active: 2 days
property_change: 19 total, avg: 9.5, active: 2 days
Unique properties: 4
Top properties: hubspot_owner_id(12), domain(3), name(3), phone(1)
deal (164 total, avg: 54.67)
property_change: 164 total, avg: 54.67, active: 3 days
Unique properties: 8
Top properties: notes_last_updated(134), closedate(7), dealstage(5), hs_deal_stage_probability(5), hs_manual_forecast_category(5)
contact (518 total, avg: 172.67)
property_change: 390 total, avg: 130, active: 3 days
Unique properties: 9
Top properties: hubspot_owner_id(186), firstname(35), email(35), associatedcompanyid(33), country(33)
creation: 36 total, avg: 18, active: 2 days
association_change: 92 total, avg: 46, active: 2 days
root@67e84f80b9d1:/home/jiminny#
DOCKER
Close Tab
DEV (-zsh)
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
ec2-user@ip-10-20-6-111:~...
|
iTerm2
|
ec2-user@ip-10-20-6-111:~
|
NULL
|
45588
|
|
45589
|
UW PICO 5.09 UW PICO 5.09 New Buffer
[ Read 137 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
Last login: Fri Apr 17 10:32:22 on ttys013
/Users/lukas/.zprofile:138: unmatched "
/Users/lukas/.zprofile:138: unmatched "
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % veu
zsh: command not found: veu
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % ssh jiminny-eu-ecs1
Enter MFA code for arn:aws:iam::438740370364:mfa/[EMAIL]:
Warning: Permanently added 'jiminny-eu-ecs1' (ED25519) to the list of known hosts.
A newer release of "Amazon Linux" is available.
Version 2023.10.20260105:
Version 2023.10.20260120:
Version 2023.10.20260202:
Version 2023.10.20260216:
Version 2023.10.20260302:
Version 2023.10.20260325:
Version 2023.10.20260330:
Version 2023.11.20260406:
Version 2023.11.20260413:
Version 2023.8.20250707:
Version 2023.8.20250715:
Version 2023.8.20250721:
Version 2023.8.20250808:
Version 2023.8.20250818:
Version 2023.8.20250908:
Version 2023.8.20250915:
Version 2023.9.20250929:
Version 2023.9.20251014:
Version 2023.9.20251020:
Version 2023.9.20251027:
Version 2023.9.20251105:
Version 2023.9.20251110:
Version 2023.9.20251117:
Version 2023.9.20251208:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_
~\_ ####_
~~ \_#####\
~~ \###|
~~ \#/ ___ Amazon Linux 2023 (ECS Optimized)
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
For documentation, visit [URL_WITH_CREDENTIALS] ~]$ docker exec -it $(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook redis --key-type ids --detailed
INFO Scanning Redis keys (type: ids).
Total keys found [PASSWORD_DOTS] 87
Total IDs across all keys [PASSWORD_DOTS] 18,991
📊 Memory Overview
Total Memory [PASSWORD_DOTS] 1.17 MB
ids keys [PASSWORD_DOTS] 1.17 MB
batch_sync_deal:ids:338:all (Formalize - 432)
Config ID: 338
Type: set
Memory: 582.22 KB
TTL: 23h 26m 22s
Count: 9314
Sample: 36225705250, 29787925122, 329967686878
batch_sync_contact:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 203.66 KB
TTL: 15h 27m 1s
Count: 3257
Sample: 4723151, 569384381669, 751397913846
batch_sync_contact:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 159.54 KB
TTL: 23h 58m 24s
Count: 2551
Sample: 7855597, 214629714698, 1081551
batch_sync_company:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 143.97 KB
TTL: 15h 26m 38s
Count: 2302
Sample: 97509907664, 287839612106, 13347420118
batch_sync_company:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 28.54 KB
TTL: 23h 57m 58s
Count: 455
Sample: 53416555927, 5299782086, 48272143029
batch_sync_company:ids:346:all (Global Expansion - 444)
Config ID: 346
Type: set
Memory: 17.66 KB
TTL: 23h 59m 57s
Count: 281
Sample: 54084980525, 31037091957, 16036051109
batch_sync_contact:ids:346:all (Global Expansion - 444)
Config ID: 346
Type: set
Memory: 12.6 KB
TTL: 23h 59m 57s
Count: 200
Sample: 216133633092, 216059621965, 216123582828
batch_sync_contact:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 4.35 KB
TTL: 23h 42m 32s
Count: 68
Sample: 751746229489, 662801482974, 751204849893
batch_sync_company:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.6 KB
TTL: 8h 7m 26s
Count: 56
Sample: 293769448657, 7905289206, 6994524653
batch_sync_contact:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.47 KB
TTL: 22h 45m 52s
Count: 54
Sample: 730208, 752394791155, 759217738995
batch_sync_deal:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 3.47 KB
TTL: 9h 4m 51s
Count: 54
Sample: 364507398345, 494814103757, 494016526555
batch_sync_company:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 3.41 KB
TTL: 23h 55m 1s
Count: 53
Sample: 399250577648, 426553672928, 379424069826
batch_sync_deal:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.04 KB
TTL: 8h 7m 33s
Count: 47
Sample: 498503490753, 498500636859, 498501354684
batch_sync_contact:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.6 KB
TTL: 23h 59m 35s
Count: 24
Sample: 753335460029, 759353955559, 600494578893
batch_sync_company:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.47 KB
TTL: 23h 59m 22s
Count: 22
Sample: 23755815000, 5684894521, 3972787939
batch_sync_deal:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.47 KB
TTL: 23h 55m 17s
Count: 22
Sample: 499035527382, 494192151741, 499111919842
batch_sync_contact:ids:488:all (MakeMyHouseGreen - 567)
Config ID: 488
Type: set
Memory: 1.41 KB
TTL: 23h 57m 17s
Count: 21
Sample: 935601, 4269001, 2258
batch_sync_contact:ids:170:all (LutherOne - 199)
Config ID: 170
Type: set
Memory: 996 B
TTL: 23h 59m 49s
Count: 14
Sample: 6438163, 18894909, 131340729177
batch_sync_contact:ids:364:all (Lead Forensics - 190)
Config ID: 364
Type: set
Memory: 932 B
TTL: 23h 56m 58s
Count: 13
Sample: 103762162328, 103730206004, 103746035125
batch_sync_contact:ids:124:all (Intruder - 149)
Config ID: 124
Type: set
Memory: 868 B
TTL: 23h 53m 21s
Count: 12
Sample: 209000212364, 72073201, 32825651463
batch_sync_contact:ids:70:all (Scoro - 93)
Config ID: 70
Type: set
Memory: 804 B
TTL: 23h 49m 7s
Count: 11
Sample: 548911252691, 549509632216, 549499217106
batch_sync_contact:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 804 B
TTL: 23h 55m 11s
Count: 11
Sample: 215753056547, 215474268483, 215540281168
batch_sync_contact:ids:363:all (Global Group - 456)
Config ID: 363
Type: set
Memory: 548 B
TTL: 23h 57m 2s
Count: 7
Sample: 156053546908, 14789232785, 1569201
batch_sync_deal:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 548 B
TTL: 23h 54m 15s
Count: 7
Sample: 498986026223, 17924102876, 498928162009
batch_sync_deal:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 548 B
TTL: 23h 59m 34s
Count: 7
Sample: 498984577267, 499024879840, 496749330660
batch_sync_company:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 484 B
TTL: 23h 53m 55s
Count: 6
Sample: 12886901694, 47800033493, 426487803113
batch_sync_company:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 484 B
TTL: 23h 53m 12s
Count: 6
Sample: 54056532238, 25291493956, 52568117585
batch_sync_contact:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 484 B
TTL: 23h 53m 55s
Count: 6
Sample: 25784346850, 758403684599, 758356838593
batch_sync_contact:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 420 B
TTL: 23h 51m 15s
Count: 5
Sample: 759339342027, 6476279789, 759338177732
batch_sync_deal:ids:241:all (PatentRenewal.com ApS - 306)
Config ID: 241
Type: set
Memory: 420 B
TTL: 23h 59m 34s
Count: 5
Sample: 57554678843, 59164863320, 40205117839
batch_sync_company:ids:175:all (Team iAM - 203)
Config ID: 175
Type: set
Memory: 356 B
TTL: 23h 52m 11s
Count: 4
Sample: 31289463313, 53432109235, 47337393078
batch_sync_contact:ids:197:all (Kindly - 264)
Config ID: 197
Type: set
Memory: 356 B
TTL: 23h 56m 33s
Count: 4
Sample: 759337959662, 759340603582, 759336916201
batch_sync_contact:ids:308:all (Foodles - 380)
Config ID: 308
Type: set
Memory: 356 B
TTL: 23h 47m 13s
Count: 4
Sample: 209605481386, 216074957452, 216074957451
batch_sync_contact:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 356 B
TTL: 23h 59m 38s
Count: 4
Sample: 758403694783, 6338351, 755171302642
batch_sync_contact:ids:485:all (LATUS Group - 563)
Config ID: 485
Type: set
Memory: 356 B
TTL: 23h 59m 51s
Count: 4
Sample: 216014615839, 216124673101, 215534275979
batch_sync_company:ids:170:all (LutherOne - 199)
Config ID: 170
Type: set
Memory: 292 B
TTL: 23h 55m 25s
Count: 3
Sample: 5061344699, 8979817578, 53544705830
batch_sync_company:ids:197:all (Kindly - 264)
Config ID: 197
Type: set
Memory: 292 B
TTL: 23h 56m 26s
Count: 3
Sample: 426652716232, 426652949738, 426671486159
batch_sync_company:ids:436:all (Moxso - 519)
Config ID: 436
Type: set
Memory: 292 B
TTL: 23h 54m 5s
Count: 3
Sample: 5637526753, 9027001061, 426485659872
batch_sync_company:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 292 B
TTL: 23h 49m 25s
Count: 3
Sample: 12009203674, 12897632476, 331995461840
batch_sync_contact:ids:130:all (Latana Brand Tracking - 155)
Config ID: 130
Type: set
Memory: 292 B
TTL: 23h 44m 14s
Count: 3
Sample: 216074963815, 216074963816, 216074963817
batch_sync_contact:ids:175:all (Team iAM - 203)
Config ID: 175
Type: set
Memory: 292 B
TTL: 23h 52m 37s
Count: 3
Sample: 212581164888, 216121454962, 216121861967
batch_sync_contact:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 292 B
TTL: 23h 49m 25s
Count: 3
Sample: 15081981630, 28607253707, 589985456367
batch_sync_deal:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 292 B
TTL: 23h 54m 43s
Count: 3
Sample: 498984572105, 498986026222, 498987447516
batch_sync_company:ids:70:all (Scoro - 93)
Config ID: 70
Type: set
Memory: 228 B
TTL: 23h 48m 59s
Count: 2
Sample: 308374847674, 426652674241
batch_sync_company:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 228 B
TTL: 23h 57m 6s
Count: 2
Sample: 612188920, 1045770343
batch_sync_contact:ids:112:all (Switchee - 137)
Config ID: 112
Type: set
Memory: 228 B
TTL: 23h 50m 12s
Count: 2
Sample: 216074959999, 216074960000
batch_sync_contact:ids:201:all (THRIVE - 266)
Config ID: 201
Type: set
Memory: 228 B
TTL: 23h 59m 17s
Count: 2
Sample: 17229652, 23550651
batch_sync_contact:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 228 B
TTL: 23h 48m 32s
Count: 2
Sample: 9236122316, 108257234125
batch_sync_contact:ids:307:all (Story Terrace Inc - 379)
Config ID: 307
Type: set
Memory: 228 B
TTL: 23h 54m 36s
Count: 2
Sample: 216118037022, 216120038928
batch_sync_contact:ids:319:all (MySalesCoach - 400)
Config ID: 319
Type: set
Memory: 228 B
TTL: 23h 51m 16s
Count: 2
Sample: 191355036878, 759224982717
batch_sync_contact:ids:335:all (Eletive - 429)
Config ID: 335
Type: set
Memory: 228 B
TTL: 23h 58m 13s
Count: 2
Sample: 159795767866, 757397522679
batch_sync_contact:ids:339:all (inspera.no - 436)
Config ID: 339
Type: set
Memory: 228 B
TTL: 23h 55m 54s
Count: 2
Sample: 183336486505, 216074960287
batch_sync_contact:ids:412:all (Antavo - 500)
Config ID: 412
Type: set
Memory: 228 B
TTL: 23h 50m 30s
Count: 2
Sample: 644080299229, 705317319867
batch_sync_deal:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 228 B
TTL: 23h 51m 21s
Count: 2
Sample: 13955519955, 499101468869
batch_sync_deal:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 228 B
TTL: 23h 49m 0s
Count: 2
Sample: 499101779135, 499117828335
batch_sync_company:ids:95:all (Cronofy - 118)
Config ID: 95
Type: set
Memory: 164 B
TTL: 23h 44m 9s
Count: 1
Sample: 54084980481
batch_sync_company:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 164 B
TTL: 23h 51m 18s
Count: 1
Sample: 231946184895
batch_sync_company:ids:112:all (Switchee - 137)
Config ID: 112
Type: set
Memory: 164 B
TTL: 23h 45m 50s
Count: 1
Sample: 30902131597
batch_sync_company:ids:124:all (Intruder - 149)
Config ID: 124
Type: set
Memory: 164 B
TTL: 23h 49m 59s
Count: 1
Sample: 19200117829
batch_sync_company:ids:130:all (Latana Brand Tracking - 155)
Config ID: 130
Type: set
Memory: 164 B
TTL: 23h 43m 46s
Count: 1
Sample: 3412118684
batch_sync_company:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 53m 53s
Count: 1
Sample: 2492067355
batch_sync_company:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 41m 16s
Count: 1
Sample: 54051603071
batch_sync_company:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 164 B
TTL: 23h 48m 34s
Count: 1
Sample: 45363246315
batch_sync_company:ids:295:all (APLYiD - 367)
Config ID: 295
Type: set
Memory: 164 B
TTL: 23h 43m 38s
Count: 1
Sample: 426645956821
batch_sync_company:ids:308:all (Foodles - 380)
Config ID: 308
Type: set
Memory: 164 B
TTL: 23h 43m 36s
Count: 1
Sample: 4623764126
batch_sync_company:ids:485:all (LATUS Group - 563)
Config ID: 485
Type: set
Memory: 164 B
TTL: 23h 59m 51s
Count: 1
Sample: 16393088676
batch_sync_contact:ids:81:all (Hurree - 104)
Config ID: 81
Type: set
Memory: 164 B
TTL: 23h 52m 48s
Count: 1
Sample: 216123172492
batch_sync_contact:ids:86:all (Teamtailor - 109)
Config ID: 86
Type: set
Memory: 164 B
TTL: 5h 35m 55s
Count: 1
Sample: 128480851
batch_sync_contact:ids:95:all (Cronofy - 118)
Config ID: 95
Type: set
Memory: 164 B
TTL: 23h 44m 9s
Count: 1
Sample: 216119828808
batch_sync_contact:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 43m 42s
Count: 1
Sample: 185805924409
batch_sync_contact:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 41m 16s
Count: 1
Sample: 216122837601
batch_sync_contact:ids:255:all (Screendragon - 324)
Config ID: 255
Type: set
Memory: 164 B
TTL: 23h 44m 22s
Count: 1
Sample: 215982276420
batch_sync_contact:ids:278:all (Akixi - 348)
Config ID: 278
Type: set
Memory: 164 B
TTL: 23h 46m 52s
Count: 1
Sample: 758404365499
batch_sync_contact:ids:284:all (Brickflow (Property Funding Hub Ltd) - 354)
Config ID: 284
Type: set
Memory: 164 B
TTL: 23h 44m 47s
Count: 1
Sample: 195262486661
batch_sync_contact:ids:295:all (APLYiD - 367)
Config ID: 295
Type: set
Memory: 164 B
TTL: 23h 44m 11s
Count: 1
Sample: 759223062753
batch_sync_contact:ids:322:all (Talkative - 403)
Config ID: 322
Type: set
Memory: 164 B
TTL: 23h 56m 55s
Count: 1
Sample: 751262016755
batch_sync_contact:ids:367:all (Sensat - 459)
Config ID: 367
Type: set
Memory: 164 B
TTL: 23h 51m 33s
Count: 1
Sample: 215694537008
batch_sync_contact:ids:403:all (Fundrella - 491)
Config ID: 403
Type: set
Memory: 164 B
TTL: 23h 43m 28s
Count: 1
Sample: 147101
batch_sync_contact:ids:436:all (Moxso - 519)
Config ID: 436
Type: set
Memory: 164 B
TTL: 23h 54m 15s
Count: 1
Sample: 294701
batch_sync_contact:ids:491:all (CreateFuture - 570)
Config ID: 491
Type: set
Memory: 164 B
TTL: 23h 51m 48s
Count: 1
Sample: 214629839743
batch_sync_deal:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 54m 11s
Count: 1
Sample: 59230347609
batch_sync_deal:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 50m 5s
Count: 1
Sample: 58878310503
batch_sync_deal:ids:255:all (Screendragon - 324)
Config ID: 255
Type: set
Memory: 164 B
TTL: 23h 44m 20s
Count: 1
Sample: 59243074931
batch_sync_deal:ids:335:all (Eletive - 429)
Config ID: 335
Type: set
Memory: 164 B
TTL: 23h 39m 13s
Count: 1
Sample: 498499653826
batch_sync_deal:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 164 B
TTL: 5h 19m 0s
Count: 1
Sample: 10644871427
batch_sync_deal:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 164 B
TTL: 2h 41m 0s
Count: 1
Sample: 493652735187
batch_sync_deal:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 164 B
TTL: 23h 47m 59s
Count: 1
Sample: 59186288665
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook redis --key-type ids --detailed -T 459
INFO Scanning Redis keys (type: ids).
Total keys found [PASSWORD_DOTS] 1
Total IDs across all keys [PASSWORD_DOTS] 1
📊 Memory Overview
Total Memory [PASSWORD_DOTS] 164 B
ids keys [PASSWORD_DOTS] 164 B
batch_sync_contact:ids:367:all (Sensat - 459)
Config ID: 367
Type: set
Memory: 164 B
TTL: 23h 51m 6s
Count: 1
Sample: 215694537008
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459
INFO Webhook Metrics — 2026-04-17.
📊 Webhook Metrics Summary
==========================================
Date: 2026-04-17
Filters: Config: 367
Total Teams: 1
Total Webhooks: 7
🏢 Config 367 (Sensat - 459) - 7 webhooks
📦 contact: 6 webhooks
🔔 property_change: 6 events, 5 properties
📦 deal: 1 webhooks
🔔 property_change: 1 events, 1 properties
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459 --from 2026-04-15
INFO Managing webhook metrics for date range.
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Config ID [PASSWORD_DOTS] 367
📊 Range Summary
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Total Days [PASSWORD_DOTS] 3
Oldest Data Age [PASSWORD_DOTS] 2.0 days ago
Total Webhooks [PASSWORD_DOTS] 1,065,651
Daily Average [PASSWORD_DOTS] 355,217.00
Active Companies [PASSWORD_DOTS] 89
🏢 Company Details
Company 367 (Sensat - 459)
Total Webhooks: 796
Days Active: 3/3
Daily Average: 265.33
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459 --from 2026-04-15 -D
INFO Managing webhook metrics for date range.
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Config ID [PASSWORD_DOTS] 367
📊 Range Summary
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Total Days [PASSWORD_DOTS] 3
Oldest Data Age [PASSWORD_DOTS] 2.0 days ago
Total Webhooks [PASSWORD_DOTS] 1,065,677
Daily Average [PASSWORD_DOTS] 355,225.67
Active Companies [PASSWORD_DOTS] 89
📅 Daily Breakdown
2026-04-15: 335,647 webhooks, 88 companies active
2026-04-16: 671,679 webhooks, 88 companies active
2026-04-17: 58,351 webhooks, 68 companies active
🏢 Company Details
Company 367 (Sensat - 459)
Total Webhooks: 796
Days Active: 3/3
Daily Average: 265.33
company (114 total, avg: 38)
association_change: 92 total, avg: 46, active: 2 days
creation: 3 total, avg: 1.5, active: 2 days
property_change: 19 total, avg: 9.5, active: 2 days
Unique properties: 4
Top properties: hubspot_owner_id(12), domain(3), name(3), phone(1)
deal (164 total, avg: 54.67)
property_change: 164 total, avg: 54.67, active: 3 days
Unique properties: 8
Top properties: notes_last_updated(134), closedate(7), dealstage(5), hs_deal_stage_probability(5), hs_manual_forecast_category(5)
contact (518 total, avg: 172.67)
property_change: 390 total, avg: 130, active: 3 days
Unique properties: 9
Top properties: hubspot_owner_id(186), firstname(35), email(35), associatedcompanyid(33), country(33)
creation: 36 total, avg: 18, active: 2 days
association_change: 92 total, avg: 46, active: 2 days
root@67e84f80b9d1:/home/jiminny#
DOCKER
Close Tab
DEV (-zsh)
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
ec2-user@ip-10-20-6-111:~...
|
iTerm2
|
ec2-user@ip-10-20-6-111:~
|
NULL
|
45589
|
|
45590
|
UW PICO 5.09 UW PICO 5.09 New Buffer
[ Read 137 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
Last login: Fri Apr 17 10:32:22 on ttys013
/Users/lukas/.zprofile:138: unmatched "
/Users/lukas/.zprofile:138: unmatched "
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % veu
zsh: command not found: veu
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % ssh jiminny-eu-ecs1
Enter MFA code for arn:aws:iam::438740370364:mfa/[EMAIL]:
Warning: Permanently added 'jiminny-eu-ecs1' (ED25519) to the list of known hosts.
A newer release of "Amazon Linux" is available.
Version 2023.10.20260105:
Version 2023.10.20260120:
Version 2023.10.20260202:
Version 2023.10.20260216:
Version 2023.10.20260302:
Version 2023.10.20260325:
Version 2023.10.20260330:
Version 2023.11.20260406:
Version 2023.11.20260413:
Version 2023.8.20250707:
Version 2023.8.20250715:
Version 2023.8.20250721:
Version 2023.8.20250808:
Version 2023.8.20250818:
Version 2023.8.20250908:
Version 2023.8.20250915:
Version 2023.9.20250929:
Version 2023.9.20251014:
Version 2023.9.20251020:
Version 2023.9.20251027:
Version 2023.9.20251105:
Version 2023.9.20251110:
Version 2023.9.20251117:
Version 2023.9.20251208:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_
~\_ ####_
~~ \_#####\
~~ \###|
~~ \#/ ___ Amazon Linux 2023 (ECS Optimized)
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
For documentation, visit [URL_WITH_CREDENTIALS] ~]$ docker exec -it $(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook redis --key-type ids --detailed
INFO Scanning Redis keys (type: ids).
Total keys found [PASSWORD_DOTS] 87
Total IDs across all keys [PASSWORD_DOTS] 18,991
📊 Memory Overview
Total Memory [PASSWORD_DOTS] 1.17 MB
ids keys [PASSWORD_DOTS] 1.17 MB
batch_sync_deal:ids:338:all (Formalize - 432)
Config ID: 338
Type: set
Memory: 582.22 KB
TTL: 23h 26m 22s
Count: 9314
Sample: 36225705250, 29787925122, 329967686878
batch_sync_contact:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 203.66 KB
TTL: 15h 27m 1s
Count: 3257
Sample: 4723151, 569384381669, 751397913846
batch_sync_contact:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 159.54 KB
TTL: 23h 58m 24s
Count: 2551
Sample: 7855597, 214629714698, 1081551
batch_sync_company:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 143.97 KB
TTL: 15h 26m 38s
Count: 2302
Sample: 97509907664, 287839612106, 13347420118
batch_sync_company:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 28.54 KB
TTL: 23h 57m 58s
Count: 455
Sample: 53416555927, 5299782086, 48272143029
batch_sync_company:ids:346:all (Global Expansion - 444)
Config ID: 346
Type: set
Memory: 17.66 KB
TTL: 23h 59m 57s
Count: 281
Sample: 54084980525, 31037091957, 16036051109
batch_sync_contact:ids:346:all (Global Expansion - 444)
Config ID: 346
Type: set
Memory: 12.6 KB
TTL: 23h 59m 57s
Count: 200
Sample: 216133633092, 216059621965, 216123582828
batch_sync_contact:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 4.35 KB
TTL: 23h 42m 32s
Count: 68
Sample: 751746229489, 662801482974, 751204849893
batch_sync_company:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.6 KB
TTL: 8h 7m 26s
Count: 56
Sample: 293769448657, 7905289206, 6994524653
batch_sync_contact:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.47 KB
TTL: 22h 45m 52s
Count: 54
Sample: 730208, 752394791155, 759217738995
batch_sync_deal:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 3.47 KB
TTL: 9h 4m 51s
Count: 54
Sample: 364507398345, 494814103757, 494016526555
batch_sync_company:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 3.41 KB
TTL: 23h 55m 1s
Count: 53
Sample: 399250577648, 426553672928, 379424069826
batch_sync_deal:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.04 KB
TTL: 8h 7m 33s
Count: 47
Sample: 498503490753, 498500636859, 498501354684
batch_sync_contact:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.6 KB
TTL: 23h 59m 35s
Count: 24
Sample: 753335460029, 759353955559, 600494578893
batch_sync_company:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.47 KB
TTL: 23h 59m 22s
Count: 22
Sample: 23755815000, 5684894521, 3972787939
batch_sync_deal:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.47 KB
TTL: 23h 55m 17s
Count: 22
Sample: 499035527382, 494192151741, 499111919842
batch_sync_contact:ids:488:all (MakeMyHouseGreen - 567)
Config ID: 488
Type: set
Memory: 1.41 KB
TTL: 23h 57m 17s
Count: 21
Sample: 935601, 4269001, 2258
batch_sync_contact:ids:170:all (LutherOne - 199)
Config ID: 170
Type: set
Memory: 996 B
TTL: 23h 59m 49s
Count: 14
Sample: 6438163, 18894909, 131340729177
batch_sync_contact:ids:364:all (Lead Forensics - 190)
Config ID: 364
Type: set
Memory: 932 B
TTL: 23h 56m 58s
Count: 13
Sample: 103762162328, 103730206004, 103746035125
batch_sync_contact:ids:124:all (Intruder - 149)
Config ID: 124
Type: set
Memory: 868 B
TTL: 23h 53m 21s
Count: 12
Sample: 209000212364, 72073201, 32825651463
batch_sync_contact:ids:70:all (Scoro - 93)
Config ID: 70
Type: set
Memory: 804 B
TTL: 23h 49m 7s
Count: 11
Sample: 548911252691, 549509632216, 549499217106
batch_sync_contact:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 804 B
TTL: 23h 55m 11s
Count: 11
Sample: 215753056547, 215474268483, 215540281168
batch_sync_contact:ids:363:all (Global Group - 456)
Config ID: 363
Type: set
Memory: 548 B
TTL: 23h 57m 2s
Count: 7
Sample: 156053546908, 14789232785, 1569201
batch_sync_deal:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 548 B
TTL: 23h 54m 15s
Count: 7
Sample: 498986026223, 17924102876, 498928162009
batch_sync_deal:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 548 B
TTL: 23h 59m 34s
Count: 7
Sample: 498984577267, 499024879840, 496749330660
batch_sync_company:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 484 B
TTL: 23h 53m 55s
Count: 6
Sample: 12886901694, 47800033493, 426487803113
batch_sync_company:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 484 B
TTL: 23h 53m 12s
Count: 6
Sample: 54056532238, 25291493956, 52568117585
batch_sync_contact:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 484 B
TTL: 23h 53m 55s
Count: 6
Sample: 25784346850, 758403684599, 758356838593
batch_sync_contact:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 420 B
TTL: 23h 51m 15s
Count: 5
Sample: 759339342027, 6476279789, 759338177732
batch_sync_deal:ids:241:all (PatentRenewal.com ApS - 306)
Config ID: 241
Type: set
Memory: 420 B
TTL: 23h 59m 34s
Count: 5
Sample: 57554678843, 59164863320, 40205117839
batch_sync_company:ids:175:all (Team iAM - 203)
Config ID: 175
Type: set
Memory: 356 B
TTL: 23h 52m 11s
Count: 4
Sample: 31289463313, 53432109235, 47337393078
batch_sync_contact:ids:197:all (Kindly - 264)
Config ID: 197
Type: set
Memory: 356 B
TTL: 23h 56m 33s
Count: 4
Sample: 759337959662, 759340603582, 759336916201
batch_sync_contact:ids:308:all (Foodles - 380)
Config ID: 308
Type: set
Memory: 356 B
TTL: 23h 47m 13s
Count: 4
Sample: 209605481386, 216074957452, 216074957451
batch_sync_contact:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 356 B
TTL: 23h 59m 38s
Count: 4
Sample: 758403694783, 6338351, 755171302642
batch_sync_contact:ids:485:all (LATUS Group - 563)
Config ID: 485
Type: set
Memory: 356 B
TTL: 23h 59m 51s
Count: 4
Sample: 216014615839, 216124673101, 215534275979
batch_sync_company:ids:170:all (LutherOne - 199)
Config ID: 170
Type: set
Memory: 292 B
TTL: 23h 55m 25s
Count: 3
Sample: 5061344699, 8979817578, 53544705830
batch_sync_company:ids:197:all (Kindly - 264)
Config ID: 197
Type: set
Memory: 292 B
TTL: 23h 56m 26s
Count: 3
Sample: 426652716232, 426652949738, 426671486159
batch_sync_company:ids:436:all (Moxso - 519)
Config ID: 436
Type: set
Memory: 292 B
TTL: 23h 54m 5s
Count: 3
Sample: 5637526753, 9027001061, 426485659872
batch_sync_company:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 292 B
TTL: 23h 49m 25s
Count: 3
Sample: 12009203674, 12897632476, 331995461840
batch_sync_contact:ids:130:all (Latana Brand Tracking - 155)
Config ID: 130
Type: set
Memory: 292 B
TTL: 23h 44m 14s
Count: 3
Sample: 216074963815, 216074963816, 216074963817
batch_sync_contact:ids:175:all (Team iAM - 203)
Config ID: 175
Type: set
Memory: 292 B
TTL: 23h 52m 37s
Count: 3
Sample: 212581164888, 216121454962, 216121861967
batch_sync_contact:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 292 B
TTL: 23h 49m 25s
Count: 3
Sample: 15081981630, 28607253707, 589985456367
batch_sync_deal:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 292 B
TTL: 23h 54m 43s
Count: 3
Sample: 498984572105, 498986026222, 498987447516
batch_sync_company:ids:70:all (Scoro - 93)
Config ID: 70
Type: set
Memory: 228 B
TTL: 23h 48m 59s
Count: 2
Sample: 308374847674, 426652674241
batch_sync_company:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 228 B
TTL: 23h 57m 6s
Count: 2
Sample: 612188920, 1045770343
batch_sync_contact:ids:112:all (Switchee - 137)
Config ID: 112
Type: set
Memory: 228 B
TTL: 23h 50m 12s
Count: 2
Sample: 216074959999, 216074960000
batch_sync_contact:ids:201:all (THRIVE - 266)
Config ID: 201
Type: set
Memory: 228 B
TTL: 23h 59m 17s
Count: 2
Sample: 17229652, 23550651
batch_sync_contact:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 228 B
TTL: 23h 48m 32s
Count: 2
Sample: 9236122316, 108257234125
batch_sync_contact:ids:307:all (Story Terrace Inc - 379)
Config ID: 307
Type: set
Memory: 228 B
TTL: 23h 54m 36s
Count: 2
Sample: 216118037022, 216120038928
batch_sync_contact:ids:319:all (MySalesCoach - 400)
Config ID: 319
Type: set
Memory: 228 B
TTL: 23h 51m 16s
Count: 2
Sample: 191355036878, 759224982717
batch_sync_contact:ids:335:all (Eletive - 429)
Config ID: 335
Type: set
Memory: 228 B
TTL: 23h 58m 13s
Count: 2
Sample: 159795767866, 757397522679
batch_sync_contact:ids:339:all (inspera.no - 436)
Config ID: 339
Type: set
Memory: 228 B
TTL: 23h 55m 54s
Count: 2
Sample: 183336486505, 216074960287
batch_sync_contact:ids:412:all (Antavo - 500)
Config ID: 412
Type: set
Memory: 228 B
TTL: 23h 50m 30s
Count: 2
Sample: 644080299229, 705317319867
batch_sync_deal:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 228 B
TTL: 23h 51m 21s
Count: 2
Sample: 13955519955, 499101468869
batch_sync_deal:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 228 B
TTL: 23h 49m 0s
Count: 2
Sample: 499101779135, 499117828335
batch_sync_company:ids:95:all (Cronofy - 118)
Config ID: 95
Type: set
Memory: 164 B
TTL: 23h 44m 9s
Count: 1
Sample: 54084980481
batch_sync_company:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 164 B
TTL: 23h 51m 18s
Count: 1
Sample: 231946184895
batch_sync_company:ids:112:all (Switchee - 137)
Config ID: 112
Type: set
Memory: 164 B
TTL: 23h 45m 50s
Count: 1
Sample: 30902131597
batch_sync_company:ids:124:all (Intruder - 149)
Config ID: 124
Type: set
Memory: 164 B
TTL: 23h 49m 59s
Count: 1
Sample: 19200117829
batch_sync_company:ids:130:all (Latana Brand Tracking - 155)
Config ID: 130
Type: set
Memory: 164 B
TTL: 23h 43m 46s
Count: 1
Sample: 3412118684
batch_sync_company:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 53m 53s
Count: 1
Sample: 2492067355
batch_sync_company:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 41m 16s
Count: 1
Sample: 54051603071
batch_sync_company:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 164 B
TTL: 23h 48m 34s
Count: 1
Sample: 45363246315
batch_sync_company:ids:295:all (APLYiD - 367)
Config ID: 295
Type: set
Memory: 164 B
TTL: 23h 43m 38s
Count: 1
Sample: 426645956821
batch_sync_company:ids:308:all (Foodles - 380)
Config ID: 308
Type: set
Memory: 164 B
TTL: 23h 43m 36s
Count: 1
Sample: 4623764126
batch_sync_company:ids:485:all (LATUS Group - 563)
Config ID: 485
Type: set
Memory: 164 B
TTL: 23h 59m 51s
Count: 1
Sample: 16393088676
batch_sync_contact:ids:81:all (Hurree - 104)
Config ID: 81
Type: set
Memory: 164 B
TTL: 23h 52m 48s
Count: 1
Sample: 216123172492
batch_sync_contact:ids:86:all (Teamtailor - 109)
Config ID: 86
Type: set
Memory: 164 B
TTL: 5h 35m 55s
Count: 1
Sample: 128480851
batch_sync_contact:ids:95:all (Cronofy - 118)
Config ID: 95
Type: set
Memory: 164 B
TTL: 23h 44m 9s
Count: 1
Sample: 216119828808
batch_sync_contact:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 43m 42s
Count: 1
Sample: 185805924409
batch_sync_contact:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 41m 16s
Count: 1
Sample: 216122837601
batch_sync_contact:ids:255:all (Screendragon - 324)
Config ID: 255
Type: set
Memory: 164 B
TTL: 23h 44m 22s
Count: 1
Sample: 215982276420
batch_sync_contact:ids:278:all (Akixi - 348)
Config ID: 278
Type: set
Memory: 164 B
TTL: 23h 46m 52s
Count: 1
Sample: 758404365499
batch_sync_contact:ids:284:all (Brickflow (Property Funding Hub Ltd) - 354)
Config ID: 284
Type: set
Memory: 164 B
TTL: 23h 44m 47s
Count: 1
Sample: 195262486661
batch_sync_contact:ids:295:all (APLYiD - 367)
Config ID: 295
Type: set
Memory: 164 B
TTL: 23h 44m 11s
Count: 1
Sample: 759223062753
batch_sync_contact:ids:322:all (Talkative - 403)
Config ID: 322
Type: set
Memory: 164 B
TTL: 23h 56m 55s
Count: 1
Sample: 751262016755
batch_sync_contact:ids:367:all (Sensat - 459)
Config ID: 367
Type: set
Memory: 164 B
TTL: 23h 51m 33s
Count: 1
Sample: 215694537008
batch_sync_contact:ids:403:all (Fundrella - 491)
Config ID: 403
Type: set
Memory: 164 B
TTL: 23h 43m 28s
Count: 1
Sample: 147101
batch_sync_contact:ids:436:all (Moxso - 519)
Config ID: 436
Type: set
Memory: 164 B
TTL: 23h 54m 15s
Count: 1
Sample: 294701
batch_sync_contact:ids:491:all (CreateFuture - 570)
Config ID: 491
Type: set
Memory: 164 B
TTL: 23h 51m 48s
Count: 1
Sample: 214629839743
batch_sync_deal:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 54m 11s
Count: 1
Sample: 59230347609
batch_sync_deal:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 50m 5s
Count: 1
Sample: 58878310503
batch_sync_deal:ids:255:all (Screendragon - 324)
Config ID: 255
Type: set
Memory: 164 B
TTL: 23h 44m 20s
Count: 1
Sample: 59243074931
batch_sync_deal:ids:335:all (Eletive - 429)
Config ID: 335
Type: set
Memory: 164 B
TTL: 23h 39m 13s
Count: 1
Sample: 498499653826
batch_sync_deal:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 164 B
TTL: 5h 19m 0s
Count: 1
Sample: 10644871427
batch_sync_deal:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 164 B
TTL: 2h 41m 0s
Count: 1
Sample: 493652735187
batch_sync_deal:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 164 B
TTL: 23h 47m 59s
Count: 1
Sample: 59186288665
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook redis --key-type ids --detailed -T 459
INFO Scanning Redis keys (type: ids).
Total keys found [PASSWORD_DOTS] 1
Total IDs across all keys [PASSWORD_DOTS] 1
📊 Memory Overview
Total Memory [PASSWORD_DOTS] 164 B
ids keys [PASSWORD_DOTS] 164 B
batch_sync_contact:ids:367:all (Sensat - 459)
Config ID: 367
Type: set
Memory: 164 B
TTL: 23h 51m 6s
Count: 1
Sample: 215694537008
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459
INFO Webhook Metrics — 2026-04-17.
📊 Webhook Metrics Summary
==========================================
Date: 2026-04-17
Filters: Config: 367
Total Teams: 1
Total Webhooks: 7
🏢 Config 367 (Sensat - 459) - 7 webhooks
📦 contact: 6 webhooks
🔔 property_change: 6 events, 5 properties
📦 deal: 1 webhooks
🔔 property_change: 1 events, 1 properties
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459 --from 2026-04-15
INFO Managing webhook metrics for date range.
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Config ID [PASSWORD_DOTS] 367
📊 Range Summary
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Total Days [PASSWORD_DOTS] 3
Oldest Data Age [PASSWORD_DOTS] 2.0 days ago
Total Webhooks [PASSWORD_DOTS] 1,065,651
Daily Average [PASSWORD_DOTS] 355,217.00
Active Companies [PASSWORD_DOTS] 89
🏢 Company Details
Company 367 (Sensat - 459)
Total Webhooks: 796
Days Active: 3/3
Daily Average: 265.33
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459 --from 2026-04-15 -D
INFO Managing webhook metrics for date range.
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Config ID [PASSWORD_DOTS] 367
📊 Range Summary
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Total Days [PASSWORD_DOTS] 3
Oldest Data Age [PASSWORD_DOTS] 2.0 days ago
Total Webhooks [PASSWORD_DOTS] 1,065,677
Daily Average [PASSWORD_DOTS] 355,225.67
Active Companies [PASSWORD_DOTS] 89
📅 Daily Breakdown
2026-04-15: 335,647 webhooks, 88 companies active
2026-04-16: 671,679 webhooks, 88 companies active
2026-04-17: 58,351 webhooks, 68 companies active
🏢 Company Details
Company 367 (Sensat - 459)
Total Webhooks: 796
Days Active: 3/3
Daily Average: 265.33
company (114 total, avg: 38)
association_change: 92 total, avg: 46, active: 2 days
creation: 3 total, avg: 1.5, active: 2 days
property_change: 19 total, avg: 9.5, active: 2 days
Unique properties: 4
Top properties: hubspot_owner_id(12), domain(3), name(3), phone(1)
deal (164 total, avg: 54.67)
property_change: 164 total, avg: 54.67, active: 3 days
Unique properties: 8
Top properties: notes_last_updated(134), closedate(7), dealstage(5), hs_deal_stage_probability(5), hs_manual_forecast_category(5)
contact (518 total, avg: 172.67)
property_change: 390 total, avg: 130, active: 3 days
Unique properties: 9
Top properties: hubspot_owner_id(186), firstname(35), email(35), associatedcompanyid(33), country(33)
creation: 36 total, avg: 18, active: 2 days
association_change: 92 total, avg: 46, active: 2 days
root@67e84f80b9d1:/home/jiminny#
DOCKER
Close Tab
DEV (-zsh)
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
ec2-user@ip-10-20-6-111:~...
|
iTerm2
|
ec2-user@ip-10-20-6-111:~
|
NULL
|
45590
|
|
45591
|
UW PICO 5.09 UW PICO 5.09 New Buffer
[ Read 137 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
Last login: Fri Apr 17 10:32:22 on ttys013
/Users/lukas/.zprofile:138: unmatched "
/Users/lukas/.zprofile:138: unmatched "
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % veu
zsh: command not found: veu
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ % ssh jiminny-eu-ecs1
Enter MFA code for arn:aws:iam::438740370364:mfa/[EMAIL]:
Warning: Permanently added 'jiminny-eu-ecs1' (ED25519) to the list of known hosts.
A newer release of "Amazon Linux" is available.
Version 2023.10.20260105:
Version 2023.10.20260120:
Version 2023.10.20260202:
Version 2023.10.20260216:
Version 2023.10.20260302:
Version 2023.10.20260325:
Version 2023.10.20260330:
Version 2023.11.20260406:
Version 2023.11.20260413:
Version 2023.8.20250707:
Version 2023.8.20250715:
Version 2023.8.20250721:
Version 2023.8.20250808:
Version 2023.8.20250818:
Version 2023.8.20250908:
Version 2023.8.20250915:
Version 2023.9.20250929:
Version 2023.9.20251014:
Version 2023.9.20251020:
Version 2023.9.20251027:
Version 2023.9.20251105:
Version 2023.9.20251110:
Version 2023.9.20251117:
Version 2023.9.20251208:
Run "/usr/bin/dnf check-release-update" for full release and version update info
, #_
~\_ ####_
~~ \_#####\
~~ \###|
~~ \#/ ___ Amazon Linux 2023 (ECS Optimized)
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
For documentation, visit [URL_WITH_CREDENTIALS] ~]$ docker exec -it $(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook redis --key-type ids --detailed
INFO Scanning Redis keys (type: ids).
Total keys found [PASSWORD_DOTS] 87
Total IDs across all keys [PASSWORD_DOTS] 18,991
📊 Memory Overview
Total Memory [PASSWORD_DOTS] 1.17 MB
ids keys [PASSWORD_DOTS] 1.17 MB
batch_sync_deal:ids:338:all (Formalize - 432)
Config ID: 338
Type: set
Memory: 582.22 KB
TTL: 23h 26m 22s
Count: 9314
Sample: 36225705250, 29787925122, 329967686878
batch_sync_contact:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 203.66 KB
TTL: 15h 27m 1s
Count: 3257
Sample: 4723151, 569384381669, 751397913846
batch_sync_contact:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 159.54 KB
TTL: 23h 58m 24s
Count: 2551
Sample: 7855597, 214629714698, 1081551
batch_sync_company:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 143.97 KB
TTL: 15h 26m 38s
Count: 2302
Sample: 97509907664, 287839612106, 13347420118
batch_sync_company:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 28.54 KB
TTL: 23h 57m 58s
Count: 455
Sample: 53416555927, 5299782086, 48272143029
batch_sync_company:ids:346:all (Global Expansion - 444)
Config ID: 346
Type: set
Memory: 17.66 KB
TTL: 23h 59m 57s
Count: 281
Sample: 54084980525, 31037091957, 16036051109
batch_sync_contact:ids:346:all (Global Expansion - 444)
Config ID: 346
Type: set
Memory: 12.6 KB
TTL: 23h 59m 57s
Count: 200
Sample: 216133633092, 216059621965, 216123582828
batch_sync_contact:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 4.35 KB
TTL: 23h 42m 32s
Count: 68
Sample: 751746229489, 662801482974, 751204849893
batch_sync_company:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.6 KB
TTL: 8h 7m 26s
Count: 56
Sample: 293769448657, 7905289206, 6994524653
batch_sync_contact:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.47 KB
TTL: 22h 45m 52s
Count: 54
Sample: 730208, 752394791155, 759217738995
batch_sync_deal:ids:439:all (Log My Care - 522)
Config ID: 439
Type: set
Memory: 3.47 KB
TTL: 9h 4m 51s
Count: 54
Sample: 364507398345, 494814103757, 494016526555
batch_sync_company:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 3.41 KB
TTL: 23h 55m 1s
Count: 53
Sample: 399250577648, 426553672928, 379424069826
batch_sync_deal:ids:449:all (SiSU Health UK - 531)
Config ID: 449
Type: set
Memory: 3.04 KB
TTL: 8h 7m 33s
Count: 47
Sample: 498503490753, 498500636859, 498501354684
batch_sync_contact:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.6 KB
TTL: 23h 59m 35s
Count: 24
Sample: 753335460029, 759353955559, 600494578893
batch_sync_company:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.47 KB
TTL: 23h 59m 22s
Count: 22
Sample: 23755815000, 5684894521, 3972787939
batch_sync_deal:ids:331:all (The National College - 416)
Config ID: 331
Type: set
Memory: 1.47 KB
TTL: 23h 55m 17s
Count: 22
Sample: 499035527382, 494192151741, 499111919842
batch_sync_contact:ids:488:all (MakeMyHouseGreen - 567)
Config ID: 488
Type: set
Memory: 1.41 KB
TTL: 23h 57m 17s
Count: 21
Sample: 935601, 4269001, 2258
batch_sync_contact:ids:170:all (LutherOne - 199)
Config ID: 170
Type: set
Memory: 996 B
TTL: 23h 59m 49s
Count: 14
Sample: 6438163, 18894909, 131340729177
batch_sync_contact:ids:364:all (Lead Forensics - 190)
Config ID: 364
Type: set
Memory: 932 B
TTL: 23h 56m 58s
Count: 13
Sample: 103762162328, 103730206004, 103746035125
batch_sync_contact:ids:124:all (Intruder - 149)
Config ID: 124
Type: set
Memory: 868 B
TTL: 23h 53m 21s
Count: 12
Sample: 209000212364, 72073201, 32825651463
batch_sync_contact:ids:70:all (Scoro - 93)
Config ID: 70
Type: set
Memory: 804 B
TTL: 23h 49m 7s
Count: 11
Sample: 548911252691, 549509632216, 549499217106
batch_sync_contact:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 804 B
TTL: 23h 55m 11s
Count: 11
Sample: 215753056547, 215474268483, 215540281168
batch_sync_contact:ids:363:all (Global Group - 456)
Config ID: 363
Type: set
Memory: 548 B
TTL: 23h 57m 2s
Count: 7
Sample: 156053546908, 14789232785, 1569201
batch_sync_deal:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 548 B
TTL: 23h 54m 15s
Count: 7
Sample: 498986026223, 17924102876, 498928162009
batch_sync_deal:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 548 B
TTL: 23h 59m 34s
Count: 7
Sample: 498984577267, 499024879840, 496749330660
batch_sync_company:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 484 B
TTL: 23h 53m 55s
Count: 6
Sample: 12886901694, 47800033493, 426487803113
batch_sync_company:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 484 B
TTL: 23h 53m 12s
Count: 6
Sample: 54056532238, 25291493956, 52568117585
batch_sync_contact:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 484 B
TTL: 23h 53m 55s
Count: 6
Sample: 25784346850, 758403684599, 758356838593
batch_sync_contact:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 420 B
TTL: 23h 51m 15s
Count: 5
Sample: 759339342027, 6476279789, 759338177732
batch_sync_deal:ids:241:all (PatentRenewal.com ApS - 306)
Config ID: 241
Type: set
Memory: 420 B
TTL: 23h 59m 34s
Count: 5
Sample: 57554678843, 59164863320, 40205117839
batch_sync_company:ids:175:all (Team iAM - 203)
Config ID: 175
Type: set
Memory: 356 B
TTL: 23h 52m 11s
Count: 4
Sample: 31289463313, 53432109235, 47337393078
batch_sync_contact:ids:197:all (Kindly - 264)
Config ID: 197
Type: set
Memory: 356 B
TTL: 23h 56m 33s
Count: 4
Sample: 759337959662, 759340603582, 759336916201
batch_sync_contact:ids:308:all (Foodles - 380)
Config ID: 308
Type: set
Memory: 356 B
TTL: 23h 47m 13s
Count: 4
Sample: 209605481386, 216074957452, 216074957451
batch_sync_contact:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 356 B
TTL: 23h 59m 38s
Count: 4
Sample: 758403694783, 6338351, 755171302642
batch_sync_contact:ids:485:all (LATUS Group - 563)
Config ID: 485
Type: set
Memory: 356 B
TTL: 23h 59m 51s
Count: 4
Sample: 216014615839, 216124673101, 215534275979
batch_sync_company:ids:170:all (LutherOne - 199)
Config ID: 170
Type: set
Memory: 292 B
TTL: 23h 55m 25s
Count: 3
Sample: 5061344699, 8979817578, 53544705830
batch_sync_company:ids:197:all (Kindly - 264)
Config ID: 197
Type: set
Memory: 292 B
TTL: 23h 56m 26s
Count: 3
Sample: 426652716232, 426652949738, 426671486159
batch_sync_company:ids:436:all (Moxso - 519)
Config ID: 436
Type: set
Memory: 292 B
TTL: 23h 54m 5s
Count: 3
Sample: 5637526753, 9027001061, 426485659872
batch_sync_company:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 292 B
TTL: 23h 49m 25s
Count: 3
Sample: 12009203674, 12897632476, 331995461840
batch_sync_contact:ids:130:all (Latana Brand Tracking - 155)
Config ID: 130
Type: set
Memory: 292 B
TTL: 23h 44m 14s
Count: 3
Sample: 216074963815, 216074963816, 216074963817
batch_sync_contact:ids:175:all (Team iAM - 203)
Config ID: 175
Type: set
Memory: 292 B
TTL: 23h 52m 37s
Count: 3
Sample: 212581164888, 216121454962, 216121861967
batch_sync_contact:ids:455:all (Argos Security - 537)
Config ID: 455
Type: set
Memory: 292 B
TTL: 23h 49m 25s
Count: 3
Sample: 15081981630, 28607253707, 589985456367
batch_sync_deal:ids:465:all (Spotler - 545)
Config ID: 465
Type: set
Memory: 292 B
TTL: 23h 54m 43s
Count: 3
Sample: 498984572105, 498986026222, 498987447516
batch_sync_company:ids:70:all (Scoro - 93)
Config ID: 70
Type: set
Memory: 228 B
TTL: 23h 48m 59s
Count: 2
Sample: 308374847674, 426652674241
batch_sync_company:ids:461:all (Fieldly - 543)
Config ID: 461
Type: set
Memory: 228 B
TTL: 23h 57m 6s
Count: 2
Sample: 612188920, 1045770343
batch_sync_contact:ids:112:all (Switchee - 137)
Config ID: 112
Type: set
Memory: 228 B
TTL: 23h 50m 12s
Count: 2
Sample: 216074959999, 216074960000
batch_sync_contact:ids:201:all (THRIVE - 266)
Config ID: 201
Type: set
Memory: 228 B
TTL: 23h 59m 17s
Count: 2
Sample: 17229652, 23550651
batch_sync_contact:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 228 B
TTL: 23h 48m 32s
Count: 2
Sample: 9236122316, 108257234125
batch_sync_contact:ids:307:all (Story Terrace Inc - 379)
Config ID: 307
Type: set
Memory: 228 B
TTL: 23h 54m 36s
Count: 2
Sample: 216118037022, 216120038928
batch_sync_contact:ids:319:all (MySalesCoach - 400)
Config ID: 319
Type: set
Memory: 228 B
TTL: 23h 51m 16s
Count: 2
Sample: 191355036878, 759224982717
batch_sync_contact:ids:335:all (Eletive - 429)
Config ID: 335
Type: set
Memory: 228 B
TTL: 23h 58m 13s
Count: 2
Sample: 159795767866, 757397522679
batch_sync_contact:ids:339:all (inspera.no - 436)
Config ID: 339
Type: set
Memory: 228 B
TTL: 23h 55m 54s
Count: 2
Sample: 183336486505, 216074960287
batch_sync_contact:ids:412:all (Antavo - 500)
Config ID: 412
Type: set
Memory: 228 B
TTL: 23h 50m 30s
Count: 2
Sample: 644080299229, 705317319867
batch_sync_deal:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 228 B
TTL: 23h 51m 21s
Count: 2
Sample: 13955519955, 499101468869
batch_sync_deal:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 228 B
TTL: 23h 49m 0s
Count: 2
Sample: 499101779135, 499117828335
batch_sync_company:ids:95:all (Cronofy - 118)
Config ID: 95
Type: set
Memory: 164 B
TTL: 23h 44m 9s
Count: 1
Sample: 54084980481
batch_sync_company:ids:96:all (Nourish Care - 119)
Config ID: 96
Type: set
Memory: 164 B
TTL: 23h 51m 18s
Count: 1
Sample: 231946184895
batch_sync_company:ids:112:all (Switchee - 137)
Config ID: 112
Type: set
Memory: 164 B
TTL: 23h 45m 50s
Count: 1
Sample: 30902131597
batch_sync_company:ids:124:all (Intruder - 149)
Config ID: 124
Type: set
Memory: 164 B
TTL: 23h 49m 59s
Count: 1
Sample: 19200117829
batch_sync_company:ids:130:all (Latana Brand Tracking - 155)
Config ID: 130
Type: set
Memory: 164 B
TTL: 23h 43m 46s
Count: 1
Sample: 3412118684
batch_sync_company:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 53m 53s
Count: 1
Sample: 2492067355
batch_sync_company:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 41m 16s
Count: 1
Sample: 54051603071
batch_sync_company:ids:253:all (Zymego - 322)
Config ID: 253
Type: set
Memory: 164 B
TTL: 23h 48m 34s
Count: 1
Sample: 45363246315
batch_sync_company:ids:295:all (APLYiD - 367)
Config ID: 295
Type: set
Memory: 164 B
TTL: 23h 43m 38s
Count: 1
Sample: 426645956821
batch_sync_company:ids:308:all (Foodles - 380)
Config ID: 308
Type: set
Memory: 164 B
TTL: 23h 43m 36s
Count: 1
Sample: 4623764126
batch_sync_company:ids:485:all (LATUS Group - 563)
Config ID: 485
Type: set
Memory: 164 B
TTL: 23h 59m 51s
Count: 1
Sample: 16393088676
batch_sync_contact:ids:81:all (Hurree - 104)
Config ID: 81
Type: set
Memory: 164 B
TTL: 23h 52m 48s
Count: 1
Sample: 216123172492
batch_sync_contact:ids:86:all (Teamtailor - 109)
Config ID: 86
Type: set
Memory: 164 B
TTL: 5h 35m 55s
Count: 1
Sample: 128480851
batch_sync_contact:ids:95:all (Cronofy - 118)
Config ID: 95
Type: set
Memory: 164 B
TTL: 23h 44m 9s
Count: 1
Sample: 216119828808
batch_sync_contact:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 43m 42s
Count: 1
Sample: 185805924409
batch_sync_contact:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 41m 16s
Count: 1
Sample: 216122837601
batch_sync_contact:ids:255:all (Screendragon - 324)
Config ID: 255
Type: set
Memory: 164 B
TTL: 23h 44m 22s
Count: 1
Sample: 215982276420
batch_sync_contact:ids:278:all (Akixi - 348)
Config ID: 278
Type: set
Memory: 164 B
TTL: 23h 46m 52s
Count: 1
Sample: 758404365499
batch_sync_contact:ids:284:all (Brickflow (Property Funding Hub Ltd) - 354)
Config ID: 284
Type: set
Memory: 164 B
TTL: 23h 44m 47s
Count: 1
Sample: 195262486661
batch_sync_contact:ids:295:all (APLYiD - 367)
Config ID: 295
Type: set
Memory: 164 B
TTL: 23h 44m 11s
Count: 1
Sample: 759223062753
batch_sync_contact:ids:322:all (Talkative - 403)
Config ID: 322
Type: set
Memory: 164 B
TTL: 23h 56m 55s
Count: 1
Sample: 751262016755
batch_sync_contact:ids:367:all (Sensat - 459)
Config ID: 367
Type: set
Memory: 164 B
TTL: 23h 51m 33s
Count: 1
Sample: 215694537008
batch_sync_contact:ids:403:all (Fundrella - 491)
Config ID: 403
Type: set
Memory: 164 B
TTL: 23h 43m 28s
Count: 1
Sample: 147101
batch_sync_contact:ids:436:all (Moxso - 519)
Config ID: 436
Type: set
Memory: 164 B
TTL: 23h 54m 15s
Count: 1
Sample: 294701
batch_sync_contact:ids:491:all (CreateFuture - 570)
Config ID: 491
Type: set
Memory: 164 B
TTL: 23h 51m 48s
Count: 1
Sample: 214629839743
batch_sync_deal:ids:191:all (Orlo - 253)
Config ID: 191
Type: set
Memory: 164 B
TTL: 23h 54m 11s
Count: 1
Sample: 59230347609
batch_sync_deal:ids:200:all (Jobadder - 265)
Config ID: 200
Type: set
Memory: 164 B
TTL: 23h 50m 5s
Count: 1
Sample: 58878310503
batch_sync_deal:ids:255:all (Screendragon - 324)
Config ID: 255
Type: set
Memory: 164 B
TTL: 23h 44m 20s
Count: 1
Sample: 59243074931
batch_sync_deal:ids:335:all (Eletive - 429)
Config ID: 335
Type: set
Memory: 164 B
TTL: 23h 39m 13s
Count: 1
Sample: 498499653826
batch_sync_deal:ids:370:all (Buynomics - 462)
Config ID: 370
Type: set
Memory: 164 B
TTL: 5h 19m 0s
Count: 1
Sample: 10644871427
batch_sync_deal:ids:373:all (KPSBremen.de - 465)
Config ID: 373
Type: set
Memory: 164 B
TTL: 2h 41m 0s
Count: 1
Sample: 493652735187
batch_sync_deal:ids:483:all (Veremark - 561)
Config ID: 483
Type: set
Memory: 164 B
TTL: 23h 47m 59s
Count: 1
Sample: 59186288665
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook redis --key-type ids --detailed -T 459
INFO Scanning Redis keys (type: ids).
Total keys found [PASSWORD_DOTS] 1
Total IDs across all keys [PASSWORD_DOTS] 1
📊 Memory Overview
Total Memory [PASSWORD_DOTS] 164 B
ids keys [PASSWORD_DOTS] 164 B
batch_sync_contact:ids:367:all (Sensat - 459)
Config ID: 367
Type: set
Memory: 164 B
TTL: 23h 51m 6s
Count: 1
Sample: 215694537008
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459
INFO Webhook Metrics — 2026-04-17.
📊 Webhook Metrics Summary
==========================================
Date: 2026-04-17
Filters: Config: 367
Total Teams: 1
Total Webhooks: 7
🏢 Config 367 (Sensat - 459) - 7 webhooks
📦 contact: 6 webhooks
🔔 property_change: 6 events, 5 properties
📦 deal: 1 webhooks
🔔 property_change: 1 events, 1 properties
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459 --from 2026-04-15
INFO Managing webhook metrics for date range.
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Config ID [PASSWORD_DOTS] 367
📊 Range Summary
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Total Days [PASSWORD_DOTS] 3
Oldest Data Age [PASSWORD_DOTS] 2.0 days ago
Total Webhooks [PASSWORD_DOTS] 1,065,651
Daily Average [PASSWORD_DOTS] 355,217.00
Active Companies [PASSWORD_DOTS] 89
🏢 Company Details
Company 367 (Sensat - 459)
Total Webhooks: 796
Days Active: 3/3
Daily Average: 265.33
root@67e84f80b9d1:/home/jiminny# php artisan crm:hubspot-webhook metrics -T 459 --from 2026-04-15 -D
INFO Managing webhook metrics for date range.
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Config ID [PASSWORD_DOTS] 367
📊 Range Summary
Date Range [PASSWORD_DOTS] 2026-04-15 to 2026-04-17
Total Days [PASSWORD_DOTS] 3
Oldest Data Age [PASSWORD_DOTS] 2.0 days ago
Total Webhooks [PASSWORD_DOTS] 1,065,677
Daily Average [PASSWORD_DOTS] 355,225.67
Active Companies [PASSWORD_DOTS] 89
📅 Daily Breakdown
2026-04-15: 335,647 webhooks, 88 companies active
2026-04-16: 671,679 webhooks, 88 companies active
2026-04-17: 58,351 webhooks, 68 companies active
🏢 Company Details
Company 367 (Sensat - 459)
Total Webhooks: 796
Days Active: 3/3
Daily Average: 265.33
company (114 total, avg: 38)
association_change: 92 total, avg: 46, active: 2 days
creation: 3 total, avg: 1.5, active: 2 days
property_change: 19 total, avg: 9.5, active: 2 days
Unique properties: 4
Top properties: hubspot_owner_id(12), domain(3), name(3), phone(1)
deal (164 total, avg: 54.67)
property_change: 164 total, avg: 54.67, active: 3 days
Unique properties: 8
Top properties: notes_last_updated(134), closedate(7), dealstage(5), hs_deal_stage_probability(5), hs_manual_forecast_category(5)
contact (518 total, avg: 172.67)
property_change: 390 total, avg: 130, active: 3 days
Unique properties: 9
Top properties: hubspot_owner_id(186), firstname(35), email(35), associatedcompanyid(33), country(33)
creation: 36 total, avg: 18, active: 2 days
association_change: 92 total, avg: 46, active: 2 days
root@67e84f80b9d1:/home/jiminny#
DOCKER
Close Tab
DEV (-zsh)
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
ec2-user@ip-10-20-6-111:~...
|
iTerm2
|
ec2-user@ip-10-20-6-111:~
|
NULL
|
45591
|
|
45672
|
Last login: Thu Apr 16 15:48:07 on ttys006
Poetry Last login: Thu Apr 16 15:48:07 on ttys006
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ dev
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug /bin/bash
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
DOCKER
Close Tab
DEV (-zsh)
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
DEV (-zsh)...
|
iTerm2
|
DEV (-zsh)
|
NULL
|
45672
|
|
45674
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45674
|
|
45676
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (git)
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
APP (git)...
|
iTerm2
|
APP (git)
|
NULL
|
45676
|
|
45697
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45697
|
|
45698
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45698
|
|
45699
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45699
|
|
45700
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45700
|
|
45703
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45703
|
|
45705
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45705
|
|
45708
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45708
|
|
45710
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45710
|
|
45714
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45714
|
|
45715
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45715
|
|
45716
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co [URL_WITH_CREDENTIALS] (nc)
Close Tab
⌥⌘1
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45716
|
|
45717
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integr
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45717
|
|
45718
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-pr
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45718
|
|
45719
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-token-update-change
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45719
|
|
45720
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-token-update-cha
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
45720
|
|
46112
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46112
|
|
46113
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46113
|
|
46138
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46138
|
|
46139
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46139
|
|
46140
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end/
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46140
|
|
46141
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46141
|
|
46142
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] (nc)
Close Tab
⌥⌘1
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46142
|
|
46143
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] (nc)
Close Tab
⌥⌘1
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46143
|
|
46144
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] (nc)
Close Tab
⌥⌘1
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46144
|
|
46145
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46145
|
|
46146
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanr build
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46146
|
|
46147
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46147
|
|
46148
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46148
|
|
46149
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
DOCKER
Close Tab
DEV (-zsh)
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
APP (-zsh)...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46149
|
|
46150
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: [URL_WITH_CREDENTIALS] (nc)
Close Tab
⌥⌘1
APP (node)...
|
iTerm2
|
APP (node)
|
NULL
|
46150
|
|
46151
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: [URL_WITH_CREDENTIALS] (nc)
Close Tab
⌥⌘1
APP (node)...
|
iTerm2
|
APP (node)
|
NULL
|
46151
|
|
46375
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46375
|
|
46376
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46376
|
|
46377
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46377
|
|
46378
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46378
|
|
46382
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46382
|
|
46400
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46400
|
|
46482
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (node)
|
NULL
|
46482
|
|
46490
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (node)
|
NULL
|
46490
|
|
46491
|
Last login: Thu Apr 16 15:48:08 on ttys007
Poetry Last login: Thu Apr 16 15:48:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ git pull
remote: Enumerating objects: 2343, done.
remote: Counting objects: 100% (1306/1306), done.
remote: Compressing objects: 100% (422/422), done.
remote: Total 2343 (delta 1041), reused 1034 (delta 874), pack-reused 1037 (from 3)
Receiving objects: 100% (2343/2343), 1.13 MiB | 2.75 MiB/s, done.
Resolving deltas: 100% (1585/1585), completed with 176 local objects.
From github.com:jiminny/app
a0a9685c0d..08ed383c5b JY-18909-automated-reports-ask-jiminny -> origin/JY-18909-automated-reports-ask-jiminny
* [new branch] JY-20291-datadog-processing-states -> origin/JY-20291-datadog-processing-states
* [new branch] JY-20485-enable-ai-call-scoring -> origin/JY-20485-enable-ai-call-scoring
* [new branch] JY-20541-cleanup-stale-tasks-and-events -> origin/JY-20541-cleanup-stale-tasks-and-events
* [new branch] JY-20541-remove-crm-contract-method -> origin/JY-20541-remove-crm-contract-method
* [new branch] JY-20553-debug-crm-sync-delays -> origin/JY-20553-debug-crm-sync-delays
* [new branch] JY-20663-partner-rockeed -> origin/JY-20663-partner-rockeed
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration -> origin/JY-9712-change-forever-nudges-to-1-year-expiration
* [new branch] JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns -> origin/JY-9712-change-forever-nudges-to-1-year-expiration-drop-columns
* [new branch] feature/add-planet-start-stop-to-make-file -> origin/feature/add-planet-start-stop-to-make-file
* [new branch] fix-cache-for-business-processes -> origin/fix-cache-for-business-processes
09c3f776ad..5bb8fefcba master -> origin/master
* [new branch] secfix/composer-20260415 -> origin/secfix/composer-20260415
* [new branch] secfix/npm-20260416 -> origin/secfix/npm-20260416
Updating a0a9685c0d..08ed383c5b
error: Your local changes to the following files would be overwritten by merge:
app/Http/Controllers/Webhook/ReportController.php
Please commit your changes or stash them before you merge.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
error: Your local changes to the following files would be overwritten by checkout:
app/Jobs/AutomatedReports/SendReportJob.php
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ co master
M .env.local
M app/Console/Commands/JiminnyDebugCommand.php
M app/Http/Controllers/API/ActivityController.php
M app/Http/Controllers/Webhook/ReportController.php
M app/Jobs/Team/SyncToIntercom.php
M app/Services/PlaybackService.php
M config/logging.php
M front-end/src/components/connect/connect.vue
M front-end/src/components/onboard/Onboard.vue
M routes/web.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 459 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 4b5aaaed8d..5bb8fefcba
Fast-forward
.env.production | 2 +-
.env.production-eu | 2 +-
.github/actions/fetch-dependabot-alerts/action.yml | 36 +
.github/secfix/README.md | 283 ++++++
.github/secfix/SECFIX_PROMPT.md | 439 +++++++++
.github/secfix/bin/composer | 18 +
.github/secfix/claude-secfix-settings.json | 21 +
.github/secfix/scripts/fetch-alerts.mjs | 163 ++++
.github/secfix/scripts/secfix-append-pr-metrics.mjs | 140 +++
.github/secfix/scripts/secfix-pr-window.mjs | 65 ++
.github/secfix/scripts/secfix-should-skip.mjs | 180 ++++
.github/secfix/scripts/secfix-slack-notify.mjs | 126 +++
.github/secfix/scripts/secfix-supported-ecosystems.mjs | 16 +
.github/secfix/scripts/secfix-update-covered-alerts.mjs | 187 ++++
.github/secfix/scripts/verify-claude-execution.mjs | 56 ++
.github/workflows/claude.yml | 1 +
.github/workflows/secfix.yml | 454 +++++++++
.gitignore | 1 +
app/Component/Activity/ActivityProcessingStateManager.php | 4 +
app/Component/ActivityAnalytics/Service/ActivityAnalyticsService.php | 68 +-
app/Component/ActivityAnalytics/Service/LocalTriggerMatcherService.php | 40 +-
app/Component/ActivityAnalytics/Service/QuestionService.php | 137 +--
app/Component/ActivityAnalytics/Service/SentenceBreaker.php | 110 ---
app/Component/ActivityAnalytics/VO/TopicTriggerMatch.php | 4 +-
app/Component/ActivitySearch/FilterDefinition/AutoScoreFilter.php | 4 +-
app/Component/AiAutomation/Actions/UpdateCrmFieldAction.php | 14 +-
app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php | 92 ++
app/Component/DealRisks/DealRisk.php | 5 +
app/Component/DealRisks/DealRiskType.php | 40 +-
app/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRisk.php | 34 +
app/Component/DealRisks/DealRisksRepository.php | 67 +-
app/Component/DealRisks/DealRisksService.php | 20 +-
app/Component/DealRisks/GroupDealRiskType.php | 23 +
app/Component/Kiosk/Services/GetTranscriptionComparisonService.php | 61 +-
app/Component/LanguageDetection/Services/DetectLanguageService.php | 74 +-
app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php | 37 +
app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php | 45 +
app/Component/MediaPipeline/MediaPipelineOrchestrator.php | 2 +
app/Component/MediaPipeline/MediaPipelineServiceProvider.php | 8 +
app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php | 46 +
app/Component/ParagraphBreaker/Services/ParagraphBuilder.php | 29 +-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 179 ++++
app/Component/ParagraphBreaker/Services/UtteranceBuilder.php | 192 ++--
app/Component/PlaybackPage/Snapshots/Listeners/GenerateSnapshotsListener.php | 6 +
app/Component/Transcription/Formatter/TranscriptionFormatter.php | 11 +-
app/Component/Transcription/Job/FinishTranscriptionJob.php | 17 +-
app/Component/Transcription/Job/StartTranscriptDiarizationJob.php | 2 +-
app/Component/Transcription/Job/TranscriptSegmentsCompileJob.php | 43 +-
app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php | 16 -
app/Component/Transcription/Service/SearchService.php | 180 ++--
app/Component/Transcription/Service/TranscriptSegmentsService.php | 396 --------
app/Component/Transcription/Service/TranscriptionPdfService.php | 132 +++
app/Component/Transcription/Service/TranscriptionService.php | 142 +--
app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-a...
|
iTerm2
|
APP (node)
|
NULL
|
46491
|
|
46546
|
app/Component/Transcription/Service/TranslationSer app/Component/Transcription/Service/TranslationService.php | 59 +-
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAI.php | 172 +---
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php | 48 +
.../Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php | 111 +++
app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileService.php | 16 +-
app/Component/Transcription/VO/TranscriptSegmentTransformer.php | 37 -
app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php | 751 +++++++++++++++
app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php | 254 ++++++
app/Console/Commands/EngagementStats/JiminnyEngagementStatsExplainCommand.php | 76 +-
app/Console/Commands/Mailboxes/BatchCreate.php | 9 +
app/Console/Commands/Mailboxes/BatchProcess.php | 18 +-
app/Console/Commands/Mailboxes/InboxSync.php | 23 +-
app/Console/Kernel.php | 4 +
app/Contracts/Crm/ProspectInterface.php | 14 +-
app/Contracts/Crm/SyncableCrmObjectInterface.php | 33 +
app/Contracts/Services/Crm/SyncCrmEntitiesInterface.php | 11 +-
app/Events/Crm/RemoteCrmRecordDeleted.php | 45 +
app/Exceptions/HttpBadRequestException.php | 4 +-
app/Exceptions/HttpForbiddenException.php | 4 +-
app/Exceptions/HttpMethodNotAllowedException.php | 4 +-
app/Exceptions/HttpNotFoundException.php | 4 +-
app/Exceptions/HttpSessionExpiredException.php | 8 +-
app/Exceptions/HttpUnauthorizedException.php | 4 +-
app/Exceptions/HttpUnsupportedFormatException.php | 4 +-
app/Guards/Sso.php | 35 +-
app/Http/Controllers/API/TranscriptionController.php | 21 +-
app/Http/Controllers/Auth/SocialController.php | 2 +-
app/Http/Controllers/Auth/SsoController.php | 12 +-
app/Jobs/Activity/DeleteTeamChurnData.php | 4 +-
app/Jobs/Activity/Import/MatchCrmData.php | 6 +-
app/Jobs/Calendar/SetupCalendarSync.php | 30 +-
app/Jobs/Calendar/SyncCalendarEvents.php | 21 +-
app/Jobs/DealRisks/RecalculateDealRisksOnCronJob.php | 17 +-
app/Jobs/Mailbox/SyncInbox.php | 51 +-
app/Listeners/Activities/Coaching/Intercom/CreateActivitySummarizedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateCommentedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreateManagerCoachedEvent.php | 6 +
app/Listeners/Activities/Coaching/Intercom/CreatePlayedEvent.php | 6 +
app/Listeners/Activities/Conferences/Intercom/CreateHeldActivityEvent.php | 6 +
app/Listeners/Activities/Crm/MatchCrmObject.php | 126 ++-
app/Listeners/Activities/Crm/Summary/AbstractSummaryListener.php | 5 +-
app/Listeners/Activities/Sms/Intercom/CreateSmsReceivedEvent.php | 6 +
app/Listeners/Crm/RemoteCrmRecordDeletedListener.php | 111 +++
app/Models/Account.php | 6 +-
app/Models/Activity.php | 42 +-
app/Models/Activity/TopicTrigger.php | 2 +-
app/Models/Activity/Transcription.php | 29 +-
app/Models/Contact.php | 6 +-
app/Models/Inbox.php | 3 +-
app/Models/InboxEmail.php | 1 +
app/Models/Lead.php | 6 +-
app/Models/Opportunity.php | 15 +-
app/Models/Participant.php | 20 +
app/Providers/EventServiceProvider.php | 6 +-
app/Providers/JiminnyServiceProvider.php | 23 -
app/Providers/RouteServiceProvider.php | 26 +-
app/Repositories/QuestionRepository.php | 32 +-
app/Services/Activity/Gmail/Service.php | 13 +-
app/Services/Activity/HubSpot/AuthenticatedHttpClient.php | 75 +-
app/Services/Activity/HubSpot/RedirectUrlResolver.php | 91 ++
app/Services/Activity/HubSpot/Service.php | 17 +-
app/Services/Activity/HubSpot/ZoomRecordingDetector.php | 27 +
app/Services/Activity/MeetingBotService.php | 5 +-
app/Services/Calendar/GoogleCalendarService.php | 36 +-
app/Services/Calendar/OfficeCalendarService.php | 39 +-
app/Services/Crm/CachedCrmServiceDecorator.php | 11 +-
app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php | 128 +++
app/Services/Crm/Hubspot/ServiceTraits/WriteCrmTrait.php | 51 +-
app/Services/Crm/Hubspot/SyncRelatedActivityManager.php | 9 +-
app/Services/Crm/ProspectCache.php | 38 +-
app/Services/Mail/InboxService.php | 10 +
app/Services/Mail/InboxServiceInterface.php | 2 +-
app/Services/Mail/Repositories/EmailServiceRepository.php | 16 +
composer.json | 3 +-
composer.lock | 420 ++-------
contrib/tmp/hubspot-associations-US/2026-02-02.json | 2254 +++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-02-18.json | 1398 ++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-05.json | 2214 ++++++++++++++++++++++++++++++++++++++++++++
contrib/tmp/hubspot-associations-US/2026-03-20.json | 2786 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
database/migrations/2026_04_05_090000_drop_unique_index_from_activity_topic_triggers.php | 12 +-
database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php | 91 ++
front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 1 -
front-end/src/components/Settings/Kiosk/ActivitiesSearch/ActivityTranscription.vue | 12 +-
.../components/Settings/OrgSettings/AiAutomation/CallScoring/callScoringTemplates/useCallScoringTemplates.js | 7 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/__test__/__snapshots__/AiAutomation.spec.js.snap | 4 +-
front-end/src/components/Settings/OrgSettings/AiContext/__test__/__snapshots__/AiContext.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/DealInsights/__tests__/__snapshots__/DealInsights.spec.js.snap | 2 +-
.../src/components/Settings/OrgSettings/Organization/__tests__/__snapshots__/OrganizationSettings.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Playbooks/__test__/__snapshots__/Playbooks.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Recording/__tests__/__snapshots__/Recording.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/__snapshots__/Topics.spec.js.snap | 2 +-
front-end/src/components/Settings/OrgSettings/Topics/__tests__/confirmationDialogs.spec.js | 6 +-
front-end/src/components/Settings/OrgSettings/Topics/confirmationDialogs.js | 4 +-
front-end/src/components/Settings/shared/Navigation/OrgSettingsNavigation.vue | 2 +-
front-end/src/components/TeamInsights/CoachingFrameworks/AutomatedCallScoring/AutomatedCallScoring.vue | 4 +-
front-end/src/components/TeamInsights/CoachingFrameworks/index.vue | 2 +-
front-end/src/components/TeamInsights/Conversations/__mocks__/data.js | 2 +-
front-end/src/components/TeamInsights/Dashboard/ChartHeader.vue | 10 +-
front-end/src/components/TeamInsights/Dashboard/CoachingOverTime.vue | 2 +-
front-end/src/components/TeamInsights/Deals/__mocks__/topicsOverview.js | 2 +-
front-end/src/components/TeamInsights/Themes/__mocks__/data.js | 2 +-
front-end/src/components/dashboard/__mocks__/data.js | 2 +-
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.less | 8 +
front-end/src/components/layout/Sidebar/QuickSearch/QuickSearchItem.vue | 80 +-
front-end/src/components/layout/Sidebar/QuickSearch/useRecentlyVisited.js | 10 +-
front-end/src/components/layout/Sidebar/__tests__/__snapshots__/QuickSearch.spec.js.snap | 36 +-
front-end/src/components/ondemand/__mocks__/activity-list.js | 6 +-
front-end/src/components/ondemand/__mocks__/on-demand.js | 2 +-
front-end/src/components/ondemand/__tests__/__snapshots__/Ondemand.spec.js.snap | 2 +-
front-end/src/components/playback/Transcripts/useTranscriptsActions.js | 2 +-
front-end/src/components/playback/__tests__/__snapshots__/Playback.spec.js.snap | 44 +-
front-end/src/components/playback/media-player/player-main/Waveform/ActivityWaveform.vue | 3 +
front-end/src/components/playback/media-player/player-main/Waveform/WaveformTimeline.vue | 63 +-
front-end/src/components/shared/Filters/InputText.vue | 2 +
front-end/src/components/shared/autoscore-rating/AutoscoreStars.vue | 2 +-
front-end/src/helpers/constants.js | 7 +
front-end/src/locales/en-US.js | 2 +-
front-end/src/store/modules/playback/actions.js | 39 +-
phpstan-baseline.neon | 40 -
resources/views/pdf/transcription.blade.php | 51 --
routes/api.php | 5 +-
tests/Feature/ServiceProviders/SsoTest.php | 191 ++++
tests/Unit/Component/Activity/ActivityProcessingStateManagerTest.php | 17 +-
tests/Unit/Component/ActivityAnalytics/Service/ActivityAnalyticsServiceTest.php | 137 ++-
tests/Unit/Component/ActivityAnalytics/Service/LocalTriggerMatcherServiceTest.php | 135 +--
tests/Unit/Component/ActivityAnalytics/Service/QuestionServiceTest.php | 610 +++----------
tests/Unit/Component/ActivityAnalytics/VO/TopicTriggerMatchTest.php | 15 +
tests/Unit/Component/ActivitySearch/FilterDefinition/AutoScoreFilterTest.php | 4 +-
tests/Unit/Component/AiAutomation/Actions/UpdateCrmFieldActionTest.php | 66 ++
tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php | 282 ++++++
tests/Unit/Component/DealInsights/DealContactServiceTest.php | 12 +-
tests/Unit/Component/DealInsights/DealServiceTest.php | 4 +-
tests/Unit/Component/DealRisks/DealRiskTest.php | 29 +-
tests/Unit/Component/DealRisks/DealRiskTypeTest.php | 24 +-
tests/Unit/Component/DealRisks/DealRiskTypes/CloseDatePassedDealRiskTest.php | 141 ++-
tests/Unit/Component/DealRisks/DealRisksServiceTest.php | 18 +-
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 +-
tests/Unit/Component/Kiosk/Services/GetTranscriptionComparisonServiceTest.php | 79 +-
tests/Unit/Component/LanguageDetection/Services/DetectLanguageServiceTest.php | 132 ++-
tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php | 97 ++
tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php | 100 ++
tests/Unit/Component/MediaPipeline/Services/GetMediaPipelineStatesServiceTest.php | 6 +
tests/Unit/Component/ParagraphBreaker/Services/ParagraphBuilderTest.php | 53 +-
tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php | 547 +++++++++++
tests/Unit/Component/ParagraphBreaker/Services/UtteranceBuilderTest.php | 73 +-
tests/Unit/Component/Transcription/Formatter/TranscriptionFormatterTest.php | 8 +-
tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php | 101 --
tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php | 220 +++++
tests/Unit/Component/Transcription/Service/SearchServiceTest.php | 193 ++++
tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php | 465 ----------
tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php | 116 +++
tests/Unit/Component/Transcription/Service/TranscriptionServiceTest.php | 61 +-
tests/Unit/Component/Transcription/Service/TranslationServiceTest.php | 31 +-
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/AssemblyAITest.php | 355 +-------
.../TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php | 220 +++++
tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/SubmitAudioFileServiceTest.php | 135 +--
tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php | 68 --
tests/Unit/Guards/SsoTest.php | 114 +++
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 124 ++-
tests/Unit/Jobs/Calendar/SyncCalendarEventsTest.php | 147 +++
tests/Unit/Jobs/DealRisks/RecalculateDealRisksOnCronJobTest.php | 17 +-
tests/Unit/Jobs/Mailbox/SyncInboxTest.php | 272 ++++++
tests/Unit/Listeners/Activities/Crm/MatchCrmObjectTest.php | 788 ++++++----------
tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php | 276 ++++++
tests/Unit/Services/Activity/HubSpot/AuthenticatedHttpClientTest.php | 207 +----
tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php | 184 ++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 205 ++++-
tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php | 196 ++++
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 88 ++
tests/Unit/Services/Crm/CachedCrmServiceDecoratorTest.php | 9 +-
tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php | 260 ++++++
tests/Unit/Services/Crm/Hubspot/ServiceTraits/WriteCrmTraitTest.php | 148 ++-
tests/Unit/Services/Crm/Hubspot/SyncRelatedActivityManagerTest.php | 105 +++
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/MatchProspectsTraitTest.php | 19 +-
tests/Unit/Services/Crm/ProspectCacheTest.php | 11 +-
tests/Unit/Services/Mail/InboxServiceTest.php | 4 +-
229 files changed, 20231 insertions(+), 4791 deletions(-)
create mode 100644 .github/actions/fetch-dependabot-alerts/action.yml
create mode 100644 .github/secfix/README.md
create mode 100644 .github/secfix/SECFIX_PROMPT.md
create mode 100755 .github/secfix/bin/composer
create mode 100644 .github/secfix/claude-secfix-settings.json
create mode 100644 .github/secfix/scripts/fetch-alerts.mjs
create mode 100644 .github/secfix/scripts/secfix-append-pr-metrics.mjs
create mode 100644 .github/secfix/scripts/secfix-pr-window.mjs
create mode 100644 .github/secfix/scripts/secfix-should-skip.mjs
create mode 100644 .github/secfix/scripts/secfix-slack-notify.mjs
create mode 100644 .github/secfix/scripts/secfix-supported-ecosystems.mjs
create mode 100644 .github/secfix/scripts/secfix-update-covered-alerts.mjs
create mode 100644 .github/secfix/scripts/verify-claude-execution.mjs
create mode 100644 .github/workflows/secfix.yml
delete mode 100644 app/Component/ActivityAnalytics/Service/SentenceBreaker.php
create mode 100644 app/Component/AiAutomation/Services/CrmFieldContentTrimmer.php
create mode 100644 app/Component/DealRisks/GroupDealRiskType.php
create mode 100644 app/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandler.php
create mode 100644 app/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandler.php
create mode 100644 app/Component/ParagraphBreaker/DTOs/TranscriptParagraph.php
create mode 100644 app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php
delete mode 100644 app/Component/Transcription/Listener/TranscriptSegmentsCompileListener.php
delete mode 100644 app/Component/Transcription/Service/TranscriptSegmentsService.php
create mode 100644 app/Component/Transcription/Service/TranscriptionPdfService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/FetchTranscriptService.php
create mode 100644 app/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionService.php
delete mode 100644 app/Component/Transcription/VO/TranscriptSegmentTransformer.php
create mode 100644 app/Console/Commands/Crm/Hubspot/RestoreDealAssociationsCommand.php
create mode 100644 app/Console/Commands/Crm/SyncOpportunitiesMissingFieldDataCommand.php
create mode 100644 app/Contracts/Crm/SyncableCrmObjectInterface.php
create mode 100644 app/Events/Crm/RemoteCrmRecordDeleted.php
create mode 100644 app/Listeners/Crm/RemoteCrmRecordDeletedListener.php
create mode 100644 app/Services/Activity/HubSpot/RedirectUrlResolver.php
create mode 100644 app/Services/Activity/HubSpot/ZoomRecordingDetector.php
create mode 100644 app/Services/Crm/CrmObjects/Validators/StaleRecordValidator.php
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-02.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-02-18.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-05.json
create mode 100644 contrib/tmp/hubspot-associations-US/2026-03-20.json
create mode 100644 database/migrations/2026_04_14_140000_move_acs_to_add_on_and_keep_active_customers.php
delete mode 100644 resources/views/pdf/transcription.blade.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFieldContentTrimmerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/LanguageDetectionPipeHandlerTest.php
create mode 100644 tests/Unit/Component/MediaPipeline/Handlers/TranscriptionParagraphsPipeHandlerTest.php
create mode 100644 tests/Unit/Component/ParagraphBreaker/Services/TranscriptionParagraphServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentCompileJobTest.php
create mode 100644 tests/Unit/Component/Transcription/Job/TranscriptSegmentsCompileJobTest.php
delete mode 100644 tests/Unit/Component/Transcription/Service/TranscriptSegmentsServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/Service/TranscriptionPdfServiceTest.php
create mode 100644 tests/Unit/Component/Transcription/TranscriptionProcessor/AssemblyAI/Services/SubmitAudioFileForLanguageDetectionServiceTest.php
delete mode 100644 tests/Unit/Component/Transcription/VO/TranscriptSegmentTransformerTest.php
create mode 100644 tests/Unit/Guards/SsoTest.php
create mode 100644 tests/Unit/Jobs/Mailbox/SyncInboxTest.php
create mode 100644 tests/Unit/Listeners/Crm/RemoteCrmRecordDeletedListenerTest.php
create mode 100644 tests/Unit/Services/Activity/HubSpot/RedirectUrlResolverTest.php
create mode 100644 tests/Unit/Services/Activity/MeetingBotServiceOnSharingDataTest.php
create mode 100644 tests/Unit/Services/Crm/CrmObjects/Validators/StaleRecordValidatorTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20692-fix-integration-app-[API_KEY]
Switched to a new branch 'JY-20692-fix-integration-app-[API_KEY]'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20692-fix-integration-app-[API_KEY]) $ cd front-end
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
yarn run v1.22.10
error @: The engine "node" is incompatible with this module. Expected version ">=24.11.1". Got "14.15.4"
error @: The engine "yarn" is incompatible with this module. Expected version ">=4.12.0". Got "1.22.10"
error Commands cannot run with an incompatible environment.
info Visit [URL_WITH_CREDENTIALS] ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yanrn build
zsh: command not found: yanrn
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app/front-end (JY-20692-fix-integration-app-[API_KEY]) $ yarn build
[dotenv@17.3.1] injecting env (0) from .env -- tip: ⚡️ secrets for agents: https://dotenvx.com/as2
vite v8.0.0 building client environment for production...
✓ 4656 modules transformed.
[sentry-vite-plugin] Warning: No auth token provided. Will not create release. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
[sentry-vite-plugin] Warning: No auth token provided. Will not upload source maps. Please set the `authToken` option. You can find information on how to generate a Sentry auth token here: https://docs.sentry.io/api/auth/
computing gzip size...
../public/vue-assets/index.html 4.58 kB │ gzip: 1.15 kB
../public/vue-assets/assets/job-adder-B2LcgC4o.png 5.41 kB
../public/vue-assets/assets/dixa-DzT89tKh.png 7.87 kB
../public/vue-assets/assets/planhat-CQycOTMW.svg 8.61 kB │ gzip: 3.48 kB
../public/vue-assets/assets/funding-circle-9iGnDGsz.png 9.43 kB
../public/vue-assets/assets/cision-uOdx_YiN.svg 14.41 kB │ gzip: 6.32 kB
../public/vue-assets/assets/les-mills-DWabpmYc.png 15.73 kB
../public/vue-assets/assets/superside-btT37L9L.png 26.69 kB
../public/vue-assets/assets/flags-a2kmUSbF.webp 28.18 kB
../public/vue-assets/assets/quinyx-RGQNHx6o.png 63.17 kB
../public/vue-assets/assets/[EMAIL] 66.44 kB
../public/vue-assets/assets/bg-marketing-CAIHIJMj.png 70.66 kB
../public/vue-assets/.vite/manifest.json 85.73 kB │ gzip: 8.33 kB
../public/vue-assets/assets/jiminny-score-DtTbKZaD.svg 131.93 kB │ gzip: 86.07 kB
../public/vue-assets/assets/wavy-bg-vnCaCm9m.webm 670.97 kB
../public/vue-assets/assets/wavy-bg-Op6dRIjR.mp4 14,484.63 kB
../public/vue-assets/assets/AppForm-EEGPL5K8.css 0.04 kB │ gzip: 0.06 kB
../public/vue-assets/assets/RecipientsCell-DNOSS8k1.css 0.12 kB │ gzip: 0.12 kB
../public/vue-assets/assets/softphone-coach-Cy_9nuQZ.css 0.13 kB │ gzip: 0.10 kB
../public/vue-assets/assets/locked-CHS8VPur.css 0.15 kB │ gzip: 0.12 kB
../public/vue-assets/assets/mobile-KPnGhnTp.css 0.16 kB │ gzip: 0.14 kB
../public/vue-assets/assets/BuildInfo-CxNQv_OV.css 0.20 kB │ gzip: 0.17 kB
../public/vue-assets/assets/AvatarsStack-C0Nvfh1V.css 0.28 kB │ gzip: 0.20 kB
../public/vue-assets/assets/LogoLong100-ByQTvUY3.css 0.32 kB │ gzip: 0.20 kB
../public/vue-assets/assets/connect--xBDzLbc.css 0.34 kB │ gzip: 0.21 kB
../public/vue-assets/assets/KioskBanner-xU3FRd8g.css 0.41 kB │ gzip: 0.27 kB
../public/vue-assets/assets/extension-installed-BPBhG13P.css 0.41 kB │ gzip: 0.26 kB
../public/vue-assets/assets/FollowModal-A0rJmIOK.css 0.45 kB │ gzip: 0.23 kB
../public/vue-assets/assets/GenericMessage-DutAlObK.css 0.49 kB │ gzip: 0.26 kB
../public/vue-assets/assets/textarea-caret-DCiNUER_.css 0.51 kB │ gzip: 0.32 kB
../public/vue-assets/assets/AppLinks-BznfGcBR.css 0.58 kB │ gzip: 0.33 kB
../public/vue-assets/assets/SeekBtn-_VMPIk6v.css 0.63 kB │ gzip: 0.32 kB
../public/vue-assets/assets/emoji-input-kJWRbWf8.css 0.68 kB │ gzip: 0.38 kB
../public/vue-assets/assets/activity-preview-BDxP2S0-.css 0.70 kB │ gzip: 0.41 kB
../public/vue-assets/assets/ListLoader-DQqAw-8s.css 0.73 kB │ gzip: 0.38 kB
../public/vue-assets/assets/filters-Bgb6cQD6.css 0.75 kB │ gzip: 0.39 kB
../public/vue-assets/assets/AiContext-Bg-zjjbA.css 0.99 kB │ gzip: 0.45 kB
../public/vue-assets/assets/vue3-daterange-picker-izPOBj3P.css 1.02 kB │ gzip: 0.39 kB
../public/vue-assets/assets/PrimaryButton-CJj2FzKS.css 1.08 kB │ gzip: 0.34 kB
../public/vue-assets/assets/other-BTuPXtu_.css 1.15 kB │ gzip: 0.49 kB
../public/vue-assets/assets/jenesius-vue-modal-DDcfejHO.css 1.17 kB │ gzip: 0.48 kB
../public/vue-assets/assets/TabEmptyState-DOlIO68k.css 1.21 kB │ gzip: 0.53 kB
../public/vue-assets/assets/AppAlert-BlSJKiqj.css 1.29 kB │ gzip: 0.41 kB
../public/vue-assets/assets/useActivityCustomerName-CBjfIUfJ.css 1.42 kB │ gzip: 0.45 kB
../public/vue-assets/assets/UserAvatar-co8l9mMk.css 1.51 kB │ gzip: 0.49 kB
../public/vue-assets/assets/basic-modal-Dx7ZBbcA.css 1.55 kB │ gzip: 0.66 kB
../public/vue-assets/assets/login-DYbcBesM.css 1.58 kB │ gzip: 0.61 kB
../public/vue-assets/assets/DrawerWidget-poAmqspk.css 1.67 kB │ gzip: 0.69 kB
../public/vue-assets/assets/ActionItems-5FkZSo3G.css 1.79 kB │ gzip: 0.80 kB
../public/vue-assets/assets/join-conference-DQ6Yl7eU.css 1.82 kB │ gzip: 0.75 kB
../public/vue-assets/assets/InputText-C-DxDNSV.css 1.95 kB │ gzip: 0.71 kB
../public/vue-assets/assets/GoogleLikeButton-DvQHxbqR.css 2.11 kB │ gzip: 0.66 kB
../public/vue-assets/assets/usePusherEventListener-CDj8aSNp.css 2.20 kB │ gzip: 0.73 kB
../public/vue-assets/assets/onboard-IzGiQ-EC.css 2.32 kB │ gzip: 0.95 kB
../public/vue-assets/assets/ai-reports-manage-DaynTl62.css 2.34 kB │ gzip: 0.86 kB
../public/vue-assets/assets/StatusBadge-B4N12dzU.css 2.35 kB │ gzip: 0.86 kB
../public/vue-assets/assets/GridView-CsP1Jk-k.css 2.36 kB │ gzip: 0.90 kB
../public/vue-assets/assets/WelcomeLayout-6AX86p6F.css 2.38 kB │ gzip: 0.91 kB
../public/vue-assets/assets/snackbar-CS_iqvrv.css 2.45 kB │ gzip: 0.80 kB
../public/vue-assets/assets/ai-reports-mtqGqPPq.css 2.47 kB │ gzip: 0.91 kB
../public/vue-assets/assets/Comment-gmAfiuer.css 2.63 kB │ gzip: 1.00 kB
../public/vue-assets/assets/meeting-consent-BasRvxE3.css 2.66 kB │ gzip: 0.96 kB
../public/vue-assets/assets/DealRiskList-CwxmDnSC.css 2.67 kB │ gzip: 0.96 kB
../public/vue-assets/assets/add-to-playlist-modal-C_ad1hht.css 2.84 kB │ gzip: 0.95 kB
../public/vue-assets/assets/live-_zT5qBc1.css 3.60 kB │ gzip: 1.16 kB
../public/vue-assets/assets/RadioField-DDp8Y71G.css 3.64 kB │ gzip: 1.20 kB
../public/vue-assets/assets/vue-multiselect-BkQNV7oL.css 3.80 kB │ gzip: 0.86 kB
../public/vue-assets/assets/activity-preview-result-Db1Da81T.css 3.89 kB │ gzip: 1.15 kB
../public/vue-assets/assets/liquor-tree-CB5oh8v1.css 4.08 kB │ gzip: 1.24 kB
../public/vue-assets/assets/sentry-CSjHcvmn.css 4.47 kB │ gzip: 1.08 kB
../public/vue-assets/assets/AiAutomation-Cj1t8v5y.css 4.61 kB │ gzip: 0.84 kB
../public/vue-assets/assets/export-portal-CyIUVTEe.css 5.34 kB │ gzip: 1.65 kB
../public/vue-assets/assets/InputField-C4hoKJ7Z.css 6.13 kB │ gzip: 1.27 kB
../public/vue-assets/assets/vue-mq-bh4L87Tr.css 6.64 kB │ gzip: 1.95 kB
../public/vue-assets/assets/invitation-EPR1t-bH.css 6.74 kB │ gzip: 2.22 kB
../public/vue-assets/assets/ondemand-C2m0YVGA.css 6.84 kB │ gzip: 2.02 kB
../public/vue-assets/assets/AskAnything-CyvEhHS1.css 8.60 kB │ gzip: 2.60 kB
../public/vue-assets/assets/AppButton-BIeoar_U.css 8.88 kB │ gzip: 2.04 kB
../public/vue-assets/assets/kiosk-BcheyWWL.css 9.56 kB │ gzip: 2.53 kB
../public/vue-assets/assets/AiCrmNotes-nNTe_mOY.css 10.62 kB │ gzip: 1.93 kB
../public/vue-assets/assets/deal-view-DJzG7PLp.css 11.70 kB │ gzip: 3.29 kB
../public/vue-assets/assets/tokens-B6_hRKul.css 12.95 kB │ gzip: 2.92 kB
../public/vue-assets/assets/tokens-CoAAv8do.css 13.41 kB │ gzip: 2.97 kB
../public/vue-assets/assets/playlists-Cy3t3kYU.css 13.54 kB │ gzip: 3.16 kB
../public/vue-assets/assets/PhoneField-D_kGOah0.css 13.75 kB │ gzip: 3.44 kB
../public/vue-assets/assets/ListView-Dt0qkyuY.css 17.07 kB │ gzip: 4.11 kB
../public/vue-assets/assets/intl-tel-input-DgmgTINs.css 17.11 kB │ gzip: 5.37 kB
../public/vue-assets/assets/AppFormField-DvpfRzi8.css 18.98 kB │ gzip: 4.42 kB
../public/vue-assets/assets/OrgSettingsLayout-BogdXtgY.css 21.98 kB │ gzip: 5.51 kB
../public/vue-assets/assets/dashboard-DQw3TKyk.css 22.74 kB │ gzip: 4.35 kB
../public/vue-assets/assets/deal-insights-CfX3UNzh.css 29.66 kB │ gzip: 6.44 kB
../public/vue-assets/assets/team-insights-CjVhm0JN.css 42.31 kB │ gzip: 8.46 kB
../public/vue-assets/assets/playback-CvJP5tX1.css 44.55 kB │ gzip: 10.36 kB
../public/vue-assets/assets/video-js-skin-DYZluGb-.css 47.73 kB │ gzip: 12.63 kB
../public/vue-assets/assets/assets-CAbfI4CY.css 83.38 kB │ gzip: 51.71 kB
../public/vue-assets/assets/logged-in-layout-1mAqkmnS.css 153.67 kB │ gzip: 27.18 kB
../public/vue-assets/assets/assets-xH6dx_9q.css 259.71 kB │ gzip: 181.71 kB
../public/vue-assets/assets/directives-DJJeJJOP.js 0.53 kB │ gzip: 0.36 kB │ map: 0.32 kB
../public/vue-assets/assets/jenesius-vue-modal-BuBhyl83.js 0.54 kB │ gzip: 0.37 kB │ map: 0.47 kB
../public/vue-assets/assets/spark-D_-Wgfar.js 0.54 kB │ gzip: 0.35 kB │ map: 0.40 kB
../public/vue-assets/assets/url-messenger-_CGQa-lH.js 0.56 kB │ gzip: 0.37 kB │ map: 0.46 kB
../public/vue-assets/assets/wavy-bg-Cec-_GDj.js 0.57 kB │ gzip: 0.36 kB │ map: 0.35 kB
../public/vue-assets/assets/component-css-class-CtO0AVgW.js 0.61 kB │ gzip: 0.40 kB │ map: 0.91 kB
../public/vue-assets/assets/theme-CrLnsUSQ.js 0.63 kB │ gzip: 0.41 kB │ map: 0.49 kB
../public/vue-assets/assets/pick-jGxSsmQW.js 0.71 kB │ gzip: 0.45 kB │ map: 1.59 kB
../public/vue-assets/assets/utils-BjsEoLDB.js 0.77 kB │ gzip: 0.50 kB │ map: 1.68 kB
../public/vue-assets/assets/throttle-DE_etUX9.js 0.78 kB │ gzip: 0.49 kB │ map: 3.24 kB
../public/vue-assets/assets/lastFilters-CjyI5phg.js 0.80 kB │ gzip: 0.51 kB │ map: 1.12 kB
../public/vue-assets/assets/useAuthState-Bpx8WpBc.js 0.81 kB │ gzip: 0.50 kB │ map: 1.64 kB
../public/vue-assets/assets/v-focus-618yf9WO.js 0.85 kB │ gzip: 0.52 kB │ map: 1.42 kB
../public/vue-assets/assets/ListLoader-bfQmkVGu.js 0.87 kB │ gzip: 0.54 kB │ map: 2.90 kB
../public/vue-assets/assets/utils-CAMifZzY.js 0.88 kB │ gzip: 0.53 kB │ map: 2.45 kB
../public/vue-assets/assets/mobileApp-QFLS3kId.js 0.89 kB │ gzip: 0.54 kB │ map: 1.12 kB
../public/vue-assets/assets/pickBy-DV-Svw8z.js 0.95 kB │ gzip: 0.59 kB │ map: 2.57 kB
../public/vue-assets/assets/BuildInfo-CIGre86L.js 1.00 kB │ gzip: 0.65 kB │ map: 1.48 kB
../public/vue-assets/assets/LogoShort100-D_SQdBYB.js 1.01 kB │ gzip: 0.64 kB │ map: 1.23 kB
../public/vue-assets/assets/useDrawerModal-CmhXI-pZ.js 1.04 kB │ gzip: 0.65 kB │ map: 1.94 kB
../public/vue-assets/assets/_getAllKeysIn-CkMQAnJa.js 1.12 kB │ gzip: 0.67 kB │ map: 4.83 kB
../public/vue-assets/assets/useAutosizeTextarea-DyMwh_20.js 1.13 kB │ gzip: 0.70 kB │ map: 3.16 kB
../public/vue-assets/assets/planhat-DPA36Hcn.js 1.21 kB │ gzip: 0.71 kB │ map: 2.18 kB
../public/vue-assets/assets/useStoreModule-Cx6UoGVJ.js 1.35 kB │ gzip: 0.72 kB │ map: 6.03 kB
../public/vue-assets/assets/GenericMessage-BxGsrfvw.js 1.39 kB │ gzip: 0.75 kB │ map: 1.90 kB
../public/vue-assets/assets/BrowserExtensionInstaller-DimyBPIi.js 1.45 kB │ gzip: 0.78 kB │ map: 2.05 kB
../public/vue-assets/assets/debounce-C6V4-Yml.js 1.53 kB │ gzip: 0.83 kB │ map: 8.61 kB
../public/vue-assets/assets/extension-installed-C_yEm2e-.js 1.60 kB │ gzip: 0.91 kB │ map: 3.20 kB
../public/vue-assets/assets/RecipientsCell-BS9gDGey.js 1.61 kB │ gzip: 0.93 kB │ map: 4.04 kB
../public/vue-assets/assets/PrimaryButton-DaKR3UAG.js 1.61 kB │ gzip: 0.87 kB │ map: 3.73 kB
../public/vue-assets/assets/KioskBanner-DyDQY_lm.js 1.66 kB │ gzip: 1.00 kB │ map: 2.88 kB
../public/vue-assets/assets/LogoLong100-Hid0kvjR.js 1.78 kB │ gzip: 1.08 kB │ map: 5.91 kB
../public/vue-assets/assets/GoogleLikeButton-CGFy3nbz.js 1.80 kB │ gzip: 0.84 kB │ map: 4.71 kB
../public/vue-assets/assets/AppAlert-DFp0nftl.js 1.86 kB │ gzip: 1.01 kB │ map: 6.51 kB
../public/vue-assets/assets/usePusherEventListener-DRJ7JhID.js 1.93 kB │ gzip: 1.08 kB │ map: 9.59 kB
../public/vue-assets/assets/AppForm-BgtH5xsM.js 2.01 kB │ gzip: 1.10 kB │ map: 6.89 kB
../public/vue-assets/assets/vee-validate-rules-IFeGZHb3.js 2.02 kB │ gzip: 0.89 kB │ map: 22.31 kB
../public/vue-assets/assets/literals-CXSwYC8y.js 2.05 kB │ gzip: 0.97 kB │ map: 3.08 kB
../public/vue-assets/assets/TabEmptyState-pk8vRxJt.js 2.16 kB │ gzip: 1.12 kB │ map: 8.26 kB
../public/vue-assets/assets/Replies-BrhP0P7D.js 2.23 kB │ gzip: 1.14 kB │ map: 2.40 kB
../public/vue-assets/assets/settings-DWZF-G8N.js 2.34 kB │ gzip: 1.23 kB │ map: 1.73 kB
../public/vue-assets/assets/SeekBtn-CMp8sSUA.js 2.47 kB │ gzip: 1.18 kB │ map: 9.27 kB
../public/vue-assets/assets/AiAutomation-CnVa_KZl.js 2.59 kB │ gzip: 1.37 kB │ map: 4.45 kB
../public/vue-assets/assets/locked-B2ThxTAd.js 2.59 kB │ gzip: 1.42 kB │ map: 4.00 kB
../public/vue-assets/assets/DrawerWidget-BPC-tCgo.js 2.68 kB │ gzip: 1.33 kB │ map: 6.95 kB
../public/vue-assets/assets/vue-infinite-scroll-D0cI4gH6.js 2.72 kB │ gzip: 1.28 kB │ map: 9.99 kB
../public/vue-assets/assets/useActivityCustomerName-CYuaZj-p.js 2.87 kB │ gzip: 1.41 kB │ map: 6.27 kB
../public/vue-assets/assets/other-k3In5q1l.js 2.97 kB │ gzip: 1.50 kB │ map: 3.38 kB
../public/vue-assets/assets/InputDropdown-CBM8xiPT.js 3.33 kB │ gzip: 1.61 kB │ map: 6.02 kB
../public/vue-assets/assets/AvatarsStack-hxex9Ic8.js 3.40 kB │ gzip: 1.51 kB │ map: 9.54 kB
../public/vue-assets/assets/activity-preview-BZrDAfqV.js 3.45 kB │ gzip: 1.69 kB │ map: 10.11 kB
../public/vue-assets/assets/FollowModal-SMYvVwqG.js 3.70 kB │ gzip: 1.81 kB │ map: 8.86 kB
../public/vue-assets/assets/softphone-coach-DJLlDZUr.js 3.74 kB │ gzip: 1.96 kB │ map: 5.03 kB
../public/vue-assets/assets/store-DdBy-CTd.js 4.10 kB │ gzip: 2.00 kB │ map: 18.73 kB
../public/vue-assets/assets/AiContext-BYAvUsG9.js 4.34 kB │ gzip: 2.08 kB │ map: 13.11 kB
../public/vue-assets/assets/meeting-consent-EdnBkMBr.js 4.43 kB │ gzip: 2.04 kB │ map: 9.72 kB
../public/vue-assets/assets/vue-multiselect-VB2Agtp1.js 4.49 kB │ gzip: 1.93 kB │ map: 14.85 kB
../public/vue-assets/assets/snackbarNotifications-DjDIGkWd.js 4.83 kB │ gzip: 1.58 kB │ map: 11.62 kB
../public/vue-assets/assets/invitation-B1SNfWGY.js 4.88 kB │ gzip: 2.21 kB │ map: 19.38 kB
../public/vue-assets/assets/connect-DzHqvqqR.js 5.17 kB │ gz...
|
iTerm2
|
APP (-zsh)
|
NULL
|
46546
|
|
46609
|
Last login: Thu Apr 16 15:48:07 on ttys006
Poetry Last login: Thu Apr 16 15:48:07 on ttys006
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ dev
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug /bin/bash
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $
DOCKER
Close Tab
DEV (-zsh)
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
DEV (-zsh)...
|
iTerm2
|
DEV (-zsh)
|
NULL
|
46609
|
|
46611
|
docker_lamp_1 | ⇂ '/usr/local/bin/php' docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:22:14 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:22:15 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:22:16 Running ['artisan' mailbox:batch:create] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:create > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:22:18 Running ['artisan' activity:sync 'ringcentral' 'avaya' 'telus' 'talkdesk' --from='2026-04-17 10:06:00' --to='2026-04-17 10:22:00'] 2026-04-17 10:22:18 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:22:18 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] 31.19ms DONE
docker_lamp_1 | 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:sync 'ringcentral' 'avaya' 'telus' 'talkdesk' --from='2026-04-17 10:06:00' --to='2026-04-17 10:22:00' > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:22:20 Running ['artisan' twilio:recover-tracks] ...... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' twilio:recover-tracks > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:22:22 Running ['artisan' dialers:sync-users] [PASSWORD_DOTS] 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:sync-users > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:22:25 Running ['artisan' datadog:report:failed-processing-states] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' datadog:report:failed-processing-states > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:23:03 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:23:06 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:23:08 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:23:10 Running ['artisan' mailbox:skip-lists:refresh] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:23:12 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:23:13 Running ['artisan' mailbox:batch:retry-failed --max-batches=15] in background 1.05ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' mailbox:batch:retry-failed --max-batches=15 > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-390defd641effba0f73a895e426ded4cf2ba7f11" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:23:13 Running ['artisan' crm:integration-app-validate-team-connection] Parameter `teamId` is not provided. Loading all teams using IntegrationApp.
docker_lamp_1 | 1 team connections to be validated.
docker_lamp_1 | 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:integration-app-validate-team-connection > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:23:16 Jiminny\Services\Crm\IntegrationApp\Jobs\ValidateTeamActiveConnectionJob RUNNING
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-17 10:23:16 Jiminny\Services\Crm\IntegrationApp\Jobs\ValidateTeamActiveConnectionJob 93.76ms DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:23:39 +0000 "GET /index.php" 500 /home/jiminny/public/index.php 12[PHONE]8 www
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:24:06 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:24:08 Running ['artisan' dialers:monitor-activities] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:24:10 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:24:12 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:24:13 Running ['artisan' mailbox:batch:process --max-batches=15] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:24:16 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:24:17 Running ['artisan' activity:aircall:check-and-renew] 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:aircall:check-and-renew > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:24:21 Running ['artisan' track:retry-failed-downloads] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' track:retry-failed-downloads > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:25:04 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:06 Running ['artisan' dialers:monitor-activities] 2026-04-17 10:25:08 Jiminny\Listeners\Users\SetupCalendarSync ...... RUNNING
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:25:06 +0000 "POST /index.php" 202 /home/jiminny/public/index.php 2[PHONE]8 www
docker_lamp_1 | 2026-04-17 10:25:08 Jiminny\Listeners\Users\SetupCalendarSync 234.08ms DONE
docker_lamp_1 | 2026-04-17 10:25:08 Jiminny\Listeners\Users\ActivityProviderIntegrated RUNNING
docker_lamp_1 | 2026-04-17 10:25:08 Jiminny\Listeners\Users\ActivityProviderIntegrated 18.53ms DONE
docker_lamp_1 | 2026-04-17 10:25:08 Jiminny\Listeners\Users\SetupMailSync [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:25:09 Jiminny\Listeners\Users\SetupMailSync .... 205.13ms DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:25:08 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | . 4s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:11 Running ['artisan' jiminny:monitor-social-accounts] [IP_ADDRESS] - 17/Apr/2026:10:25:11 +0000 "GET /index.php" 404 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:25:10 +0000 "GET /index.php" 404 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:25:10 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:25:10 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | 5s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:16 Running ['artisan' mailbox:skip-lists:refresh] . 4s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:20 Running ['artisan' mailbox:batch:process --max-batches=15] 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:24 Running ['artisan' activity:purge-stale] ....... 9s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:purge-stale > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:33 Running ['artisan' mailbox:text-relay:sync] {
docker_lamp_1 | "error": "invalid_request",
docker_lamp_1 | "error_description": "Invalid impersonation \u0026quot;sub\u0026quot; field: @"
docker_lamp_1 | }
docker_lamp_1 | .... 8s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:text-relay:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:42 Running ['artisan' conference:pre-meeting-notification] 4s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:pre-meeting-notification > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:46 Running ['artisan' conference:monitor:start] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:start > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:49 Running ['artisan' conference:monitor:end] ..... 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:end > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:53 Running ['artisan' jiminny:fix-hubspot-tokens] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:fix-hubspot-tokens > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:25:57 Running ['artisan' conference:pre-meeting-reminder] in background 4.14ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' conference:pre-meeting-reminder > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-805efb160ee8d9da02e60364ace7970eb2b35f31" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:25:57 Running ['artisan' hubspot:journal-poll --start] in background 2.06ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' hubspot:journal-poll --start > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-e26d77f915d2c55fe91ca4148a230e32eaa1865e" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:25:57 Running ['artisan' crm:bullhorn:ping --heartbeat] 0 social account(s) to be processed ...
docker_lamp_1 |
docker_lamp_1 | Done!
docker_lamp_1 | 🚀 Starting HubSpot journal polling service...
docker_lamp_1 | 7s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:bullhorn:ping --heartbeat > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-17 10:26:08 Jiminny\Services\Crm\IntegrationApp\Jobs\SubscribeForEventsJob RUNNING
docker_lamp_1 | 2026-04-17 10:26:13 Jiminny\Services\Crm\IntegrationApp\Jobs\SubscribeForEventsJob 4s DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:15 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 3019.492 20480 www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:18 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:19 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:18 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:18 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:57 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1167.429 8192 www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:59 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:59 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:59 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:26:59 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE]6 www
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:27:07 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:27:10 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:27:11 Running ['artisan' jiminny:monitor-social-accounts] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:27:14 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:27:16 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:27:17 Running ['artisan' mailbox:batch:create] ....... 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:create > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-17 10:27:21 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:27:21 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] 67.30ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:28:03 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:28:06 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:28:08 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:28:10 Running ['artisan' mailbox:skip-lists:refresh] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:28:12 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:28:14 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:28:15 Running ['artisan' mailbox:batch:retry-failed --max-batches=15] in background 2.24ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' mailbox:batch:retry-failed --max-batches=15 > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-390defd641effba0f73a895e426ded4cf2ba7f11" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:28:15 Running ['artisan' calendar:sync --dateMode=daily] 2026-04-17 10:28:27 Jiminny\Jobs\Calendar\SyncCalendarEvents ....... RUNNING
docker_lamp_1 | 2026-04-17 10:28:28 Jiminny\Jobs\Calendar\SyncCalendarEvents . 575.55ms DONE
docker_lamp_1 | 12s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' calendar:sync --dateMode=daily > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-17 10:28:30 Jiminny\Jobs\Calendar\SyncCalendarEvents ....... RUNNING
docker_lamp_1 | 2026-04-17 10:28:30 Jiminny\Jobs\Calendar\SyncCalendarEvents . 137.51ms DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:28:50 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:28:52 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:28:52 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:28:52 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:28:52 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:29:04 Running ['artisan' meeting-bot:schedule-bot] ... 6s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:29:11 Running ['artisan' dialers:monitor-activities] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:29:14 Running ['artisan' jiminny:monitor-social-accounts] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:29:16 Running ['artisan' mailbox:skip-lists:refresh] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:29:19 Running ['artisan' mailbox:batch:process --max-batches=15] 2026-04-17 10:29:24 Jiminny\Listeners\Users\SetupCalendarSync ...... RUNNING
docker_lamp_1 | 2026-04-17 10:29:24 Jiminny\Listeners\Users\SetupCalendarSync . 11.22ms DONE
docker_lamp_1 | 2026-04-17 10:29:24 Jiminny\Listeners\Users\ActivityProviderIntegrated RUNNING
docker_lamp_1 | 2026-04-17 10:29:24 Jiminny\Listeners\Users\ActivityProviderIntegrated 14.42ms DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:29:23 +0000 "POST /index.php" 202 /home/jiminny/public/index.php 2[PHONE] www
docker_lamp_1 | 6s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:29:25 Jiminny\Listeners\Users\SetupMailSync [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:29:25 Jiminny\Listeners\Users\SetupMailSync ..... 15.69ms DONE
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:29:25 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:29:27 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:29:27 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:29:27 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1087.531 6144 www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:29:27 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1136.107 10240 www
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:30:03 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:05 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:07 Running ['artisan' jiminny:monitor-social-accounts] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:10 Running ['artisan' mailbox:skip-lists:refresh] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:13 Running ['artisan' mailbox:batch:process --max-batches=15] 5s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:19 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:21 Running ['artisan' activity:purge-stale] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:purge-stale > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:23 Running ['artisan' mailbox:text-relay:sync] 2026-04-17 10:30:25 Jiminny\Services\Crm\IntegrationApp\Jobs\SubscribeForEventsJob RUNNING
docker_lamp_1 | {
docker_lamp_1 | "error": "invalid_request",
docker_lamp_1 | "error_description": "Invalid impersonation \u0026quot;sub\u0026quot; field: @"
docker_lamp_1 | }
docker_lamp_1 | .... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:text-relay:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:26 Running ['artisan' conference:pre-meeting-notification] 2026-04-17 10:30:27 Jiminny\Services\Crm\IntegrationApp\Jobs\SubscribeForEventsJob 1s DONE
docker_lamp_1 | 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:pre-meeting-notification > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:27 Running ['artisan' conference:monitor:start] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:start > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:29 Running ['artisan' conference:monitor:end] ..... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:end > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:30 Running ['artisan' jiminny:fix-hubspot-tokens] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:fix-hubspot-tokens > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:33 Running ['artisan' conference:pre-meeting-reminder] in background 3.00ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' conference:pre-meeting-reminder > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-805efb160ee8d9da02e60364ace7970eb2b35f31" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:30:33 Running ['artisan' hubspot:journal-poll --start] in background 1.68ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' hubspot:journal-poll --start > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-e26d77f915d2c55fe91ca4148a230e32eaa1865e" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:30:33 Running ['artisan' jiminny:transcription:retry-failed] No failed transcriptions found.
docker_lamp_1 | 🚀 Starting HubSpot journal polling service...
docker_lamp_1 | 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:transcription:retry-failed > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:36 Running ['artisan' crm:reset-governor] [PASSWORD_DOTS] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:reset-governor > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:38 Running ['artisan' datadog:report:processing-sla-activities] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' datadog:report:processing-sla-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:41 Running ['artisan' activity:sync --from='2026-04-17 10:14:00' --to='2026-04-17 10:30:00' --skipProviders='ringcentral' --skipProviders='avaya' --skipProviders='telus' --skipProviders='talkdesk'] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:sync --from='2026-04-17 10:14:00' --to='2026-04-17 10:30:00' --skipProviders='ringcentral' --skipProviders='avaya' --skipProviders='telus' --skipProviders='talkdesk' > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:43 Running ['artisan' mailbox:batch:fail-stalled] 2026-04-17 10:30:44 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:fail-stalled > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:44 Running ['artisan' crm:bullhorn:ping --heartbeat] 2026-04-17 10:30:45 Jiminny\Jobs\Activity\SyncActivity ....... 274.31ms DONE
docker_lamp_1 | 2026-04-17 10:30:45 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:30:45 Jiminny\Jobs\Activity\SyncActivity ....... 587.91ms DONE
docker_lamp_1 | 2026-04-17 10:30:45 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:30:46 Jiminny\Jobs\Activity\SyncActivity ....... 529.88ms DONE
docker_lamp_1 | 2026-04-17 10:30:46 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:30:46 Jiminny\Jobs\Activity\SyncActivity ....... 553.57ms DONE
docker_lamp_1 | 2026-04-17 10:30:46 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:30:47 Jiminny\Jobs\Activity\SyncActivity ....... 524.33ms DONE
docker_lamp_1 | 2026-04-17 10:30:47 Jiminny\Jobs\Activity\SyncActivity [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 0 social account(s) to be processed ...
docker_lamp_1 |
docker_lamp_1 | Done!
docker_lamp_1 | 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:bullhorn:ping --heartbeat > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:47 Running ['artisan' nudges:send --silent] 2026-04-17 10:30:47 Jiminny\Jobs\Activity\SyncActivity ....... 340.11ms DONE
docker_lamp_1 | ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' nudges:send --silent > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:30:49 Running ['artisan' jiminny:playlists:normalize-sort] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:playlists:normalize-sort > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:31:03 Running ['artisan' meeting-bot:schedule-bot] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:31:04 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:31:06 Running ['artisan' jiminny:monitor-social-accounts] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:31:09 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:31:10 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:32:03 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:32:06 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:32:07 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:32:09 Running ['artisan' mailbox:skip-lists:refresh] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:32:11 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:32:13 Running ['artisan' conference:monitor:count] ... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:32:14 Running ['artisan' mailbox:batch:create] ....... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:create > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-17 10:32:18 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:32:18 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] 65.64ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:33:02 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:33:05 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:33:07 Running ['artisan' jiminny:monitor-social-accounts] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:33:10 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:33:11 Running ['artisan' mailbox:batch:process --max-batches=15] 5s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:33:17 Running ['artisan' mailbox:batch:retry-failed --max-batches=15] in background 2.26ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' mailbox:batch:retry-failed --max-batches=15 > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-390defd641effba0f73a895e426ded4cf2ba7f11" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:33:17 Running ['artisan' crm:autolog-delayed] Dispatched autolog delayed jobs for all applicable teams:
docker_lamp_1 | [PASSWORD_DOTS] 4s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:autolog-delayed > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:00 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:03 +0000 "GET /index.php" 404 /home/jiminny/public/index.php 1084.802 6144 www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:03 +0000 "GET /index.php" 404 /home/jiminny/public/index.php 1199.391 6144 www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:03 +0000 "GET /index.php" 404 /home/jiminny/public/index.php 1087.603 6144 www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:03 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:03 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:34:04 Running ['artisan' meeting-bot:schedule-bot] ... 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:34:08 Running ['artisan' dialers:monitor-activities] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:34:11 Running ['artisan' jiminny:monitor-social-accounts] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:34:13 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:34:15 Running ['artisan' mailbox:batch:process --max-batches=15] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:34:16 Running ['artisan' conference:monitor:count] ... 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:24 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:26 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:26 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:26 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:26 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:26 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | 2026-04-17 10:35:00 Jiminny\Listeners\Users\SetupCalendarSync ...... RUNNING
docker_lamp_1 | 2026-04-17 10:35:00 Jiminny\Listeners\Users\SetupCalendarSync . 79.43ms DONE
docker_lamp_1 | 2026-04-17 10:35:00 Jiminny\Listeners\Users\ActivityProviderIntegrated RUNNING
docker_lamp_1 | 2026-04-17 10:35:00 Jiminny\Listeners\Users\ActivityProviderIntegrated 5.33ms DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:34:59 +0000 "POST /index.php" 202 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | 2026-04-17 10:35:01 Jiminny\Listeners\Users\SetupMailSync [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:35:01 Jiminny\Listeners\Users\SetupMailSync ..... 46.64ms DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:35:01 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:35:03 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:35:03 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:35:03 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:35:03 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:35:05 Running ['artisan' meeting-bot:schedule-bot] ... 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:08 Running ['artisan' dialers:monitor-activities] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:12 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:14 Running ['artisan' mailbox:skip-lists:refresh] . 5s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:19 Running ['artisan' mailbox:batch:process --max-batches=15] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:22 Running ['artisan' activity:purge-stale] ....... 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:purge-stale > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:25 Running ['artisan' mailbox:text-relay:sync] {
docker_lamp_1 | "error": "invalid_request",
docker_lamp_1 | "error_description": "Invalid impersonation \u0026quot;sub\u0026quot; field: @"
docker_lamp_1 | }
docker_lamp_1 | .... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:text-relay:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:28 Running ['artisan' conference:pre-meeting-notification] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:pre-meeting-notification > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:30 Running ['artisan' conference:monitor:start] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:start > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:32 Running ['artisan' conference:monitor:end] ..... 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:end > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:34 Running ['artisan' jiminny:fix-hubspot-tokens] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:fix-hubspot-tokens > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:35:38 Running ['artisan' conference:pre-meeting-reminder] in background 2.31ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' conference:pre-meeting-reminder > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-805efb160ee8d9da02e60364ace7970eb2b35f31" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:35:38 Running ['artisan' hubspot:journal-poll --start] in background 1.18ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' hubspot:journal-poll --start > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-e26d77f915d2c55fe91ca4148a230e32eaa1865e" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 | 2026-04-17 10:35:38 Running ['artisan' crm:bullhorn:ping --heartbeat] 0 social account(s) to be processed ...
docker_lamp_1 |
docker_lamp_1 | Done!
docker_lamp_1 | 🚀 Starting HubSpot journal polling service...
docker_lamp_1 | 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' crm:bullhorn:ping --heartbeat > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-17 10:36:01 Jiminny\Services\Crm\IntegrationApp\Jobs\SubscribeForEventsJob RUNNING
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:36:02 Running ['artisan' meeting-bot:schedule-bot] 2026-04-17 10:36:03 Jiminny\Services\Crm\IntegrationApp\Jobs\SubscribeForEventsJob 2s DONE
docker_lamp_1 | ... 4s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:36:06 Running ['artisan' dialers:monitor-activities] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:36:09 Running ['artisan' jiminny:monitor-social-accounts] 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:36:10 Running ['artisan' mailbox:skip-lists:refresh] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:36:13 Running ['artisan' mailbox:batch:process --max-batches=15] 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:36:16 Running ['artisan' conference:monitor:count] ... 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:36:19 Running ['artisan' activity:notify-not-logged] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:notify-not-logged > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:36:22 Running ['artisan' activity:status-count] {"canceled":13}...... 6s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:status-count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:36:29 Running ['artisan' mailbox:sync] Queueing 2 inbox(es) for sync.
docker_lamp_1 | [PASSWORD_DOTS] 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:sync > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-17 10:36:34 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:36:35 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] 144.63ms DONE
docker_lamp_1 | 2026-04-17 10:36:35 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:36:35 Jiminny\Jobs\Mailbox\SyncInbox [PASSWORD_DOTS] 155.64ms DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:37:03 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:37:06 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:37:07 Running ['artisan' jiminny:monitor-social-accounts] 7s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:37:15 Running ['artisan' mailbox:skip-lists:refresh] . 6s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:37:21 Running ['artisan' mailbox:batch:process --max-batches=15] 5s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:37:27 Running ['artisan' mailbox:batch:create] ....... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:create > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:37:29 Running ['artisan' activity:sync 'ringcentral' 'avaya' 'telus' 'talkdesk' --from='2026-04-17 10:21:00' --to='2026-04-17 10:37:00'] 2026-04-17 10:37:29 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:37:29 Jiminny\Jobs\Mailbox\CreateBatches [PASSWORD_DOTS] 73.48ms DONE
docker_lamp_1 | 4s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:sync 'ringcentral' 'avaya' 'telus' 'talkdesk' --from='2026-04-17 10:21:00' --to='2026-04-17 10:37:00' > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:38:04 Running ['artisan' meeting-bot:schedule-bot] [IP_ADDRESS] - 17/Apr/2026:10:38:02 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 2[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:05 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:05 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:05 +0000 "GET /index.php" 404 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:05 +0000 "GET /index.php" 200 /home/jiminny/public/index.php [PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:05 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | ... 5s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:38:09 Running ['artisan' dialers:monitor-activities] . 5s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:38:14 Running ['artisan' jiminny:monitor-social-accounts] 9s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:38:24 Running ['artisan' mailbox:skip-lists:refresh] . 5s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:38:29 Running ['artisan' mailbox:batch:process --max-batches=15] 9s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:38:38 Running ['artisan' conference:monitor:count] 2026-04-17 10:38:39 Jiminny\Listeners\Users\SetupCalendarSync ...... RUNNING
docker_lamp_1 | 2026-04-17 10:38:39 Jiminny\Listeners\Users\SetupCalendarSync . 15.03ms DONE
docker_lamp_1 | 2026-04-17 10:38:39 Jiminny\Listeners\Users\ActivityProviderIntegrated RUNNING
docker_lamp_1 | 2026-04-17 10:38:39 Jiminny\Listeners\Users\ActivityProviderIntegrated 4.22ms DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:35 +0000 "POST /index.php" 202 /home/jiminny/public/index.php 3[PHONE] www
docker_lamp_1 | 2026-04-17 10:38:40 Jiminny\Listeners\Users\SetupMailSync [PASSWORD_DOTS] RUNNING
docker_lamp_1 | 2026-04-17 10:38:40 Jiminny\Listeners\Users\SetupMailSync ..... 18.74ms DONE
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:39 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 2004.829 8192 www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:42 +0000 "GET /index.php" 404 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:42 +0000 "GET /index.php" 404 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:42 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | [IP_ADDRESS] - 17/Apr/2026:10:38:42 +0000 "GET /index.php" 200 /home/jiminny/public/index.php 1[PHONE] www
docker_lamp_1 | ... 6s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' conference:monitor:count > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:38:45 Running ['artisan' mailbox:batch:retry-failed --max-batches=15] in background 5.06ms DONE
docker_lamp_1 | ⇂ ('/usr/local/bin/php' 'artisan' mailbox:batch:retry-failed --max-batches=15 > '/proc/1/fd/1' 2>&1 ; '/usr/local/bin/php' 'artisan' schedule:finish "framework/schedule-390defd641effba0f73a895e426ded4cf2ba7f11" "$?") > '/dev/null' 2>&1 &
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:39:04 Running ['artisan' meeting-bot:schedule-bot] ... 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:39:06 Running ['artisan' dialers:monitor-activities] . 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:39:09 Running ['artisan' jiminny:monitor-social-accounts] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:39:11 Running ['artisan' mailbox:skip-lists:refresh] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:39:12 Running ['artisan' mailbox:batch:process --max-batches=15] 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:batch:process --max-batches=15 > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:39:16 Running ['artisan' activity:aircall:check-and-renew] 2s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' activity:aircall:check-and-renew > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:39:19 Running ['artisan' track:retry-failed-downloads] 7s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' track:retry-failed-downloads > '/proc/1/fd/1' 2>&1
docker_lamp_1 |
docker_lamp_1 | run_artisan_schedule: Done waiting for schedule:run
docker_lamp_1 | 2026-04-17 10:39:39 Jiminny\Services\Crm\IntegrationApp\Jobs\SubscribeForEventsJob RUNNING
docker_lamp_1 | 2026-04-17 10:39:41 Jiminny\Services\Crm\IntegrationApp\Jobs\SubscribeForEventsJob 2s DONE
docker_lamp_1 |
docker_lamp_1 | 2026-04-17 10:40:07 Running ['artisan' meeting-bot:schedule-bot] ... 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' meeting-bot:schedule-bot > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:40:11 Running ['artisan' dialers:monitor-activities] . 1s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' dialers:monitor-activities > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:40:13 Running ['artisan' jiminny:monitor-social-accounts] 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' jiminny:monitor-social-accounts > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:40:16 Running ['artisan' mailbox:skip-lists:refresh] . 3s DONE
docker_lamp_1 | ⇂ '/usr/local/bin/php' 'artisan' mailbox:skip-lists:refresh > '/proc/1/fd/1' 2>&1
docker_lamp_1 | 2026-04-17 10:40:19 Running ['artisan' mailbox:batch:process --max-batches=15] 3s DONE
...
|
iTerm2
|
PROD (ssh)
|
NULL
|
46611
|