|
65617
|
2314
|
22
|
2026-05-21T08:02:17.090963+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-21/1779 /Users/lukas/.screenpipe/data/data/2026-05-21/1779350537090_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportMetadata.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>74 incoming commits<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.016666668,"height":0.02111111},"on_screen":false,"role_description":"text"}]...
|
8687337399873577246
|
-8204424741936460858
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
SlackFileEditViewGoHistoryWindowHelpscreelDOCKER0 81DEV (-zsh)₴2APP (-zsh)whisper_init_state:whisper_init_state:kv padsize=2.36 MBcompute buffer (conv)whisper_init_state: compute buffer (encode) =whisper_init_state: compute buffer (cross)=whisper_init_state:compute buffer (decode) =14.17 MB65.96 MB8.50 MB96.83 MBggml_metal_free: deallocatingwhisper_backend_init_gpu: device 0: Metal (type:1)whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)whisper_backend_init_gpu: using Metal backendggml_metal_init: allocatingggml_metal_init: found device: Apple M1ggml_metal_init: picking default device: Apple M1ggml_metal_init:use fusion= trueggml_metal_init:use concurrency= trueggml_metal_init: use graph optimizetruewhisper_backend_init: using BLAS backendwhisper_init_state: kv self size3.15 MBwhisper_init_state: kv cross size =9.44 MBwhisper_init_state: kv padsize =2.36 MBwhisper_init_state: compute buffer (conv)whisper_init_state: compute buffer (encode) =whisper_init_state: compute buffer (cross)=whisper_init_state: compute buffer (decode) =14.17 MB65.96 MB8.50 MB96.83 MBggml_metal_free: deallocatingwhisper_backend_init_gpu:device 0: Metal (type: 1)whisper_backend_init_gpu: found GPUdevice 0: Metal (type: 1, cnt: 0)whisper_backend_init_gpu: using Metal backendggml_metal_init: allocatingggml_metal_init: found device: Apple M1ggml_metal_init: picking default device: Apple M1ggml_metal_init:use fusion= trueggml_metal_init:use concurrencytrueggml_metal_init:use graph optimizetruewhisper_backend_init: using BLAS backendwhisper_init_state: kv self size3.15 MBwhisper_init_state: kv cross size =9.44 MBwhisper_init_state: kv padsize=2.36 MBwhisper_init_state: compute buffer (conv)whisper_init_state: compute buffer (encode) =whisper_init_state: compute buffer (cross)whisper_init_state: compute buffer (decode) =14.17 MB65.96 MB8.50 MB96.83 MBggml_metal_free: deallocating2026-05-21T10:13:41.913005ZINFO screenpipe_audio::audio_manager::manager: reconciliatior2026-05-21710:15:15.5768762INFO screenpipe_engine::event_driven_capture: content dedup:j Support Daily - in 4h 45 m100% С8• Thu 21 May 10:15:32•••EDQHomeDMsActivityFilesLater•••More+→Describe what you are looking forJiminny ...ThreadsC9 Unreadsà platform-inner-teamGalya Dimitrova, Nikolay Yankov, and youa ThreadsHuddles• Drafts & sentDirectories01External connections* Starred& jiminny-x-integrati...platform-inner-teamChannels# ai-chapter# alerts# backend# bugs# confusion-clinic# curiosity_lab# engineering# general# happy_birthday# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# supportLukas Kovalik 31 minutes agoдобро утро, тази страница не трябва ли да япоказваме само ако няма reportsCleanShot 2026-05-21 at [EMAIL] your questions into ongoing insightsGalya Dimitrova 23 minutes agoДа, би трябвалоLukas Kovalik 22 minutes agoче сега ми го показва и ако имам reportLukas Kovalik 21 minutes agoна neptuneNewNikolay Yankov 6 minutes agoвсичко е наредReply...Also send to à platform-inner-team+AaYou're up to date...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
65610
|
2315
|
19
|
2026-05-21T08:01:57.271063+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-21/1779 /Users/lukas/.screenpipe/data/data/2026-05-21/1779350517271_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportMetadata.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Crm;
use Illuminate\Support\Facades\Artisan;
use Jiminny\Events\Users\CrmAccountReconnected;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\SocialAccount;
use Sentry\Laravel\Facade as Sentry;
class ImportMetadata implements ShouldQueue
{
public function handle(CrmAccountReconnected $event): void
{
if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {
$team = $event->account->sociable->team;
// For the account owner, synchronize their CRM configuration.
if ($event->account->sociable->ownsTeam($team)) {
\Log::info('[ImportMetadata] crm:sync-team-metadata', [
'teamId' => $team->id,
]);
$exitCode = Artisan::call('
crm:sync-team-metadata', [
'team' => $team->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,
);
}
}
\Log::info('[ImportMetadata] crm:sync-profile-metadata', [
'userId' => $event->account->sociable->id,
]);
$exitCode = Artisan::call('crm:sync-profile-metadata', [
'--userId' => $event->account->sociable->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,
);
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>74 incoming commits<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.40226063,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4119016,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.4192154,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Listeners\\Crm;\n\nuse Illuminate\\Support\\Facades\\Artisan;\nuse Jiminny\\Events\\Users\\CrmAccountReconnected;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\SocialAccount;\nuse Sentry\\Laravel\\Facade as Sentry;\n\nclass ImportMetadata implements ShouldQueue\n{\n public function handle(CrmAccountReconnected $event): void\n {\n if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {\n $team = $event->account->sociable->team;\n\n // For the account owner, synchronize their CRM configuration.\n if ($event->account->sociable->ownsTeam($team)) {\n \\Log::info('[ImportMetadata] crm:sync-team-metadata', [\n 'teamId' => $team->id,\n ]);\n\n $exitCode = Artisan::call('\n crm:sync-team-metadata', [\n 'team' => $team->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n\n \\Log::info('[ImportMetadata] crm:sync-profile-metadata', [\n 'userId' => $event->account->sociable->id,\n ]);\n\n $exitCode = Artisan::call('crm:sync-profile-metadata', [\n '--userId' => $event->account->sociable->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n }\n}","depth":4,"bounds":{"left":0.20046543,"top":0.074221864,"width":0.34375,"height":0.92577815},"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Listeners\\Crm;\n\nuse Illuminate\\Support\\Facades\\Artisan;\nuse Jiminny\\Events\\Users\\CrmAccountReconnected;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\SocialAccount;\nuse Sentry\\Laravel\\Facade as Sentry;\n\nclass ImportMetadata implements ShouldQueue\n{\n public function handle(CrmAccountReconnected $event): void\n {\n if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {\n $team = $event->account->sociable->team;\n\n // For the account owner, synchronize their CRM configuration.\n if ($event->account->sociable->ownsTeam($team)) {\n \\Log::info('[ImportMetadata] crm:sync-team-metadata', [\n 'teamId' => $team->id,\n ]);\n\n $exitCode = Artisan::call('\n crm:sync-team-metadata', [\n 'team' => $team->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n\n \\Log::info('[ImportMetadata] crm:sync-profile-metadata', [\n 'userId' => $event->account->sociable->id,\n ]);\n\n $exitCode = Artisan::call('crm:sync-profile-metadata', [\n '--userId' => $event->account->sociable->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"bounds":{"left":0.42785904,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"bounds":{"left":0.43650267,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"bounds":{"left":0.4474734,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"bounds":{"left":0.45611703,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-3323542429434469159
|
-8866152069969899712
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Crm;
use Illuminate\Support\Facades\Artisan;
use Jiminny\Events\Users\CrmAccountReconnected;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\SocialAccount;
use Sentry\Laravel\Facade as Sentry;
class ImportMetadata implements ShouldQueue
{
public function handle(CrmAccountReconnected $event): void
{
if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {
$team = $event->account->sociable->team;
// For the account owner, synchronize their CRM configuration.
if ($event->account->sociable->ownsTeam($team)) {
\Log::info('[ImportMetadata] crm:sync-team-metadata', [
'teamId' => $team->id,
]);
$exitCode = Artisan::call('
crm:sync-team-metadata', [
'team' => $team->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,
);
}
}
\Log::info('[ImportMetadata] crm:sync-profile-metadata', [
'userId' => $event->account->sociable->id,
]);
$exitCode = Artisan::call('crm:sync-profile-metadata', [
'--userId' => $event->account->sociable->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,
);
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters...
|
65608
|
NULL
|
NULL
|
NULL
|
|
65609
|
2314
|
18
|
2026-05-21T08:01:57.308051+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-21/1779 /Users/lukas/.screenpipe/data/data/2026-05-21/1779350517308_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportMetadata.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Crm;
use Illuminate\Support\Facades\Artisan;
use Jiminny\Events\Users\CrmAccountReconnected;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\SocialAccount;
use Sentry\Laravel\Facade as Sentry;
class ImportMetadata implements ShouldQueue
{
public function handle(CrmAccountReconnected $event): void
{
if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {
$team = $event->account->sociable->team;
// For the account owner, synchronize their CRM configuration.
if ($event->account->sociable->ownsTeam($team)) {
\Log::info('[ImportMetadata] crm:sync-team-metadata', [
'teamId' => $team->id,
]);
$exitCode = Artisan::call('
crm:sync-team-metadata', [
'team' => $team->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,
);
}
}
\Log::info('[ImportMetadata] crm:sync-profile-metadata', [
'userId' => $event->account->sociable->id,
]);
$exitCode = Artisan::call('crm:sync-profile-metadata', [
'--userId' => $event->account->sociable->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,
);
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>74 incoming commits<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Listeners\\Crm;\n\nuse Illuminate\\Support\\Facades\\Artisan;\nuse Jiminny\\Events\\Users\\CrmAccountReconnected;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\SocialAccount;\nuse Sentry\\Laravel\\Facade as Sentry;\n\nclass ImportMetadata implements ShouldQueue\n{\n public function handle(CrmAccountReconnected $event): void\n {\n if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {\n $team = $event->account->sociable->team;\n\n // For the account owner, synchronize their CRM configuration.\n if ($event->account->sociable->ownsTeam($team)) {\n \\Log::info('[ImportMetadata] crm:sync-team-metadata', [\n 'teamId' => $team->id,\n ]);\n\n $exitCode = Artisan::call('\n crm:sync-team-metadata', [\n 'team' => $team->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n\n \\Log::info('[ImportMetadata] crm:sync-profile-metadata', [\n 'userId' => $event->account->sociable->id,\n ]);\n\n $exitCode = Artisan::call('crm:sync-profile-metadata', [\n '--userId' => $event->account->sociable->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Listeners\\Crm;\n\nuse Illuminate\\Support\\Facades\\Artisan;\nuse Jiminny\\Events\\Users\\CrmAccountReconnected;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\SocialAccount;\nuse Sentry\\Laravel\\Facade as Sentry;\n\nclass ImportMetadata implements ShouldQueue\n{\n public function handle(CrmAccountReconnected $event): void\n {\n if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {\n $team = $event->account->sociable->team;\n\n // For the account owner, synchronize their CRM configuration.\n if ($event->account->sociable->ownsTeam($team)) {\n \\Log::info('[ImportMetadata] crm:sync-team-metadata', [\n 'teamId' => $team->id,\n ]);\n\n $exitCode = Artisan::call('\n crm:sync-team-metadata', [\n 'team' => $team->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n\n \\Log::info('[ImportMetadata] crm:sync-profile-metadata', [\n 'userId' => $event->account->sociable->id,\n ]);\n\n $exitCode = Artisan::call('crm:sync-profile-metadata', [\n '--userId' => $event->account->sociable->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4704936255593379003
|
-8866081701225722048
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Crm;
use Illuminate\Support\Facades\Artisan;
use Jiminny\Events\Users\CrmAccountReconnected;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\SocialAccount;
use Sentry\Laravel\Facade as Sentry;
class ImportMetadata implements ShouldQueue
{
public function handle(CrmAccountReconnected $event): void
{
if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {
$team = $event->account->sociable->team;
// For the account owner, synchronize their CRM configuration.
if ($event->account->sociable->ownsTeam($team)) {
\Log::info('[ImportMetadata] crm:sync-team-metadata', [
'teamId' => $team->id,
]);
$exitCode = Artisan::call('
crm:sync-team-metadata', [
'team' => $team->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,
);
}
}
\Log::info('[ImportMetadata] crm:sync-profile-metadata', [
'userId' => $event->account->sociable->id,
]);
$exitCode = Artisan::call('crm:sync-profile-metadata', [
'--userId' => $event->account->sociable->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,
);
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
65608
|
2315
|
18
|
2026-05-21T08:01:41.691615+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-21/1779 /Users/lukas/.screenpipe/data/data/2026-05-21/1779350501691_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportMetadata.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Crm;
use Illuminate\Support\Facades\Artisan;
use Jiminny\Events\Users\CrmAccountReconnected;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\SocialAccount;
use Sentry\Laravel\Facade as Sentry;
class ImportMetadata implements ShouldQueue
{
public function handle(CrmAccountReconnected $event): void
{
if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {
$team = $event->account->sociable->team;
// For the account owner, synchronize their CRM configuration.
if ($event->account->sociable->ownsTeam($team)) {
\Log::info('[ImportMetadata] crm:sync-team-metadata', [
'teamId' => $team->id,
]);
$exitCode = Artisan::call('
crm:sync-team-metadata', [
'team' => $team->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,
);
}
}
\Log::info('[ImportMetadata] crm:sync-profile-metadata', [
'userId' => $event->account->sociable->id,
]);
$exitCode = Artisan::call('crm:sync-profile-metadata', [
'--userId' => $event->account->sociable->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,
);
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Sync Changes
Hide This Notification
Code changed:
Hide
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
select * from crm_field_values;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>74 incoming commits<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.40226063,"top":0.12529927,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.4119016,"top":0.123703115,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.4192154,"top":0.123703115,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Listeners\\Crm;\n\nuse Illuminate\\Support\\Facades\\Artisan;\nuse Jiminny\\Events\\Users\\CrmAccountReconnected;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\SocialAccount;\nuse Sentry\\Laravel\\Facade as Sentry;\n\nclass ImportMetadata implements ShouldQueue\n{\n public function handle(CrmAccountReconnected $event): void\n {\n if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {\n $team = $event->account->sociable->team;\n\n // For the account owner, synchronize their CRM configuration.\n if ($event->account->sociable->ownsTeam($team)) {\n \\Log::info('[ImportMetadata] crm:sync-team-metadata', [\n 'teamId' => $team->id,\n ]);\n\n $exitCode = Artisan::call('\n crm:sync-team-metadata', [\n 'team' => $team->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n\n \\Log::info('[ImportMetadata] crm:sync-profile-metadata', [\n 'userId' => $event->account->sociable->id,\n ]);\n\n $exitCode = Artisan::call('crm:sync-profile-metadata', [\n '--userId' => $event->account->sociable->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n }\n}","depth":4,"bounds":{"left":0.15724733,"top":0.074221864,"width":0.34375,"height":0.92577815},"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Listeners\\Crm;\n\nuse Illuminate\\Support\\Facades\\Artisan;\nuse Jiminny\\Events\\Users\\CrmAccountReconnected;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\SocialAccount;\nuse Sentry\\Laravel\\Facade as Sentry;\n\nclass ImportMetadata implements ShouldQueue\n{\n public function handle(CrmAccountReconnected $event): void\n {\n if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {\n $team = $event->account->sociable->team;\n\n // For the account owner, synchronize their CRM configuration.\n if ($event->account->sociable->ownsTeam($team)) {\n \\Log::info('[ImportMetadata] crm:sync-team-metadata', [\n 'teamId' => $team->id,\n ]);\n\n $exitCode = Artisan::call('\n crm:sync-team-metadata', [\n 'team' => $team->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n\n \\Log::info('[ImportMetadata] crm:sync-profile-metadata', [\n 'userId' => $event->account->sociable->id,\n ]);\n\n $exitCode = Artisan::call('crm:sync-profile-metadata', [\n '--userId' => $event->account->sociable->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"bounds":{"left":0.42785904,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"bounds":{"left":0.43650267,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"bounds":{"left":0.4474734,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"bounds":{"left":0.45611703,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"bounds":{"left":0.46476063,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"bounds":{"left":0.47573137,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"bounds":{"left":0.4867021,"top":0.09896249,"width":0.024268618,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"bounds":{"left":0.51329786,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"bounds":{"left":0.5242686,"top":0.09896249,"width":0.029587766,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"bounds":{"left":0.70611703,"top":0.09896249,"width":0.02825798,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"21","depth":4,"bounds":{"left":0.66921544,"top":0.123703115,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.68085104,"top":0.123703115,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"18","depth":4,"bounds":{"left":0.69015956,"top":0.123703115,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.7017952,"top":0.123703115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":4,"bounds":{"left":0.7117686,"top":0.123703115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.72140956,"top":0.12210695,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.7287234,"top":0.12210695,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,\n\nselect * from crm_field_values;","depth":4,"on_screen":true,"value":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,\n\nselect * from crm_field_values;","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
7442387920519303262
|
2218617716047222349
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Crm;
use Illuminate\Support\Facades\Artisan;
use Jiminny\Events\Users\CrmAccountReconnected;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\SocialAccount;
use Sentry\Laravel\Facade as Sentry;
class ImportMetadata implements ShouldQueue
{
public function handle(CrmAccountReconnected $event): void
{
if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {
$team = $event->account->sociable->team;
// For the account owner, synchronize their CRM configuration.
if ($event->account->sociable->ownsTeam($team)) {
\Log::info('[ImportMetadata] crm:sync-team-metadata', [
'teamId' => $team->id,
]);
$exitCode = Artisan::call('
crm:sync-team-metadata', [
'team' => $team->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,
);
}
}
\Log::info('[ImportMetadata] crm:sync-profile-metadata', [
'userId' => $event->account->sociable->id,
]);
$exitCode = Artisan::call('crm:sync-profile-metadata', [
'--userId' => $event->account->sociable->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,
);
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Sync Changes
Hide This Notification
Code changed:
Hide
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
select * from crm_field_values;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
65607
|
2314
|
17
|
2026-05-21T08:01:41.725205+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-21/1779 /Users/lukas/.screenpipe/data/data/2026-05-21/1779350501725_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportMetadata.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Crm;
use Illuminate\Support\Facades\Artisan;
use Jiminny\Events\Users\CrmAccountReconnected;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\SocialAccount;
use Sentry\Laravel\Facade as Sentry;
class ImportMetadata implements ShouldQueue
{
public function handle(CrmAccountReconnected $event): void
{
if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {
$team = $event->account->sociable->team;
// For the account owner, synchronize their CRM configuration.
if ($event->account->sociable->ownsTeam($team)) {
\Log::info('[ImportMetadata] crm:sync-team-metadata', [
'teamId' => $team->id,
]);
$exitCode = Artisan::call('
crm:sync-team-metadata', [
'team' => $team->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,
);
}
}
\Log::info('[ImportMetadata] crm:sync-profile-metadata', [
'userId' => $event->account->sociable->id,
]);
$exitCode = Artisan::call('crm:sync-profile-metadata', [
'--userId' => $event->account->sociable->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,
);
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Sync Changes
Hide This Notification
Code changed:
Hide
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
select * from crm_field_values;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>74 incoming commits<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Listeners\\Crm;\n\nuse Illuminate\\Support\\Facades\\Artisan;\nuse Jiminny\\Events\\Users\\CrmAccountReconnected;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\SocialAccount;\nuse Sentry\\Laravel\\Facade as Sentry;\n\nclass ImportMetadata implements ShouldQueue\n{\n public function handle(CrmAccountReconnected $event): void\n {\n if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {\n $team = $event->account->sociable->team;\n\n // For the account owner, synchronize their CRM configuration.\n if ($event->account->sociable->ownsTeam($team)) {\n \\Log::info('[ImportMetadata] crm:sync-team-metadata', [\n 'teamId' => $team->id,\n ]);\n\n $exitCode = Artisan::call('\n crm:sync-team-metadata', [\n 'team' => $team->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n\n \\Log::info('[ImportMetadata] crm:sync-profile-metadata', [\n 'userId' => $event->account->sociable->id,\n ]);\n\n $exitCode = Artisan::call('crm:sync-profile-metadata', [\n '--userId' => $event->account->sociable->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Listeners\\Crm;\n\nuse Illuminate\\Support\\Facades\\Artisan;\nuse Jiminny\\Events\\Users\\CrmAccountReconnected;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\SocialAccount;\nuse Sentry\\Laravel\\Facade as Sentry;\n\nclass ImportMetadata implements ShouldQueue\n{\n public function handle(CrmAccountReconnected $event): void\n {\n if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {\n $team = $event->account->sociable->team;\n\n // For the account owner, synchronize their CRM configuration.\n if ($event->account->sociable->ownsTeam($team)) {\n \\Log::info('[ImportMetadata] crm:sync-team-metadata', [\n 'teamId' => $team->id,\n ]);\n\n $exitCode = Artisan::call('\n crm:sync-team-metadata', [\n 'team' => $team->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n\n \\Log::info('[ImportMetadata] crm:sync-profile-metadata', [\n 'userId' => $event->account->sociable->id,\n ]);\n\n $exitCode = Artisan::call('crm:sync-profile-metadata', [\n '--userId' => $event->account->sociable->id,\n ]);\n\n if ($exitCode !== 0) {\n // We got issues.\n Sentry::captureMessage(\n 'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,\n );\n }\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"21","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"18","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,\n\nselect * from crm_field_values;","depth":4,"on_screen":true,"value":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,\n\nselect * from crm_field_values;","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
7442387920519303262
|
2218617716047222349
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Listeners\Crm;
use Illuminate\Support\Facades\Artisan;
use Jiminny\Events\Users\CrmAccountReconnected;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\SocialAccount;
use Sentry\Laravel\Facade as Sentry;
class ImportMetadata implements ShouldQueue
{
public function handle(CrmAccountReconnected $event): void
{
if (in_array($event->account->provider, SocialAccount::CRM_PROVIDERS, true)) {
$team = $event->account->sociable->team;
// For the account owner, synchronize their CRM configuration.
if ($event->account->sociable->ownsTeam($team)) {
\Log::info('[ImportMetadata] crm:sync-team-metadata', [
'teamId' => $team->id,
]);
$exitCode = Artisan::call('
crm:sync-team-metadata', [
'team' => $team->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-team-metadata ' . $team->id . ' failed with exit code ' . $exitCode,
);
}
}
\Log::info('[ImportMetadata] crm:sync-profile-metadata', [
'userId' => $event->account->sociable->id,
]);
$exitCode = Artisan::call('crm:sync-profile-metadata', [
'--userId' => $event->account->sociable->id,
]);
if ($exitCode !== 0) {
// We got issues.
Sentry::captureMessage(
'crm:sync-profile-metadata ' . $event->account->sociable->id . ' failed with exit code ' . $exitCode,
);
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Sync Changes
Hide This Notification
Code changed:
Hide
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
select * from crm_field_values;
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
65605
|
NULL
|
NULL
|
NULL
|
|
37476
|
1394
|
27
|
2026-05-13T15:56:53.973378+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687813973_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37425
|
1391
|
36
|
2026-05-13T15:54:27.161283+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687667161_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_expanded":false}]...
|
-4047408223668449518
|
-8636777727364969024
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:54:26DOCKERO 81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37422
|
NULL
|
NULL
|
NULL
|
|
37423
|
1392
|
66
|
2026-05-13T15:54:25.376653+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687665376_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
rireroxcalMistorbookmarksrravsco.sProledeyCreateBo rireroxcalMistorbookmarksrravsco.sProledeyCreateBotJob.php© TextRelayService.phpDeleteBotJob.phpc Imporbotkecoraing.© RemoveBotFromCall.Textmessagingservice.php© SendAudioNotificatic( SendChatMessageJc© StartRecordingJob.pl(C) UpdateElasticSearch.ohgStopRecordingJob.pl 9.11.23Hristova 11_ WebhooksC) DatadoaMetricsService.© RecallAlService.phpc) ScreenShareService.oha SecuritvStrategyStreamingTeamTelephony© ClientTokenGenerator.p 9.11.23 Hristova© InsightsService.php18.06.25 Vasilevc) NumberAllocator nho© TextMessagingService.f© TwilioClient.php© TwilioClientBuilder.php© TwilioService.php© TwilioSubAccountCreatiUserPilotD WebhookAostaciservice.onoservices+oclex~ D DatabaseV AEU4 console 2 s 85 msti teams 2 s 915 msti crm_configurations 1 s 350 msv & liminny@localhost«SF 718 ms4 HS_JocalV APROD4, console 1 s 915 msV A STAGINGA consoleDocker© UserInvitationDTO.php© MailboxController.php• sso.onpossocontroller.ongSmsMessage.png© SmsLength.php(C) UpdateActivityElasticSearchDocumentCommand.php x C)UpdateSinqleEntity.phpclass UodateActivitvElasticSearchDocumentCommand extends Commandpublic function handle(): void©ActivityStatusin.phpif (! $activity) {$this-›error( string: "Activity with ID/UUID {$activityId} not found");= custom.logA console (EU)(P scratch_8.json4 SF [iminny@localhost]f teams (EU]f crm_configurations (EU)© ImportBotRecordingJob.php x © Activity.phpclass 1прortborkecoraingJod excenas Jod Implements shoutauueuepublic function handle(RecallAIService $recallAIService): void$bot = $recallAIService->retrieveBot($this->activity->getExternalId());if Cempty($bot['recordings'])) {je: ' [MeetingBot] ImportTracks: Recordings not found, retrying','activityUuid' => Sthis-›activity->getUuidO.if (Sthis-›attempts() < $this-›tries) {Sthis->release" delav: self."RETRY SENINISA console [PROD]A console (STAGING]A1A$this->info( stri: "Found activity ID: {$activity->getId()}, UUID: ($activity->getUvidC* 53sunls-sintol sting. sending acuivity tor ts update...ortry f$this->eventDicnew UpdateentitPSassyntPhpStorm# OutputFFR # and id = 32412AW 1owvGO0+ii jiminny.text.relaysTx: Autoi jiminny.activities, Q MOD19763436uvid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|I sourceD external_idJu providen<null+75055b5-ec93-4d5a-b8e9-1ddf0440dSbazoom-botLocationtelephony_provider_idC from_participant_idI to_participant_idI device_idI tvoeI plavbook category idDuser_idI lead idhttos:/nationbuilder.zoom.us//8209294804682092948046:59p4elqpnc61duknujsmqg8cuo<null><null><null>conference1621529089<null>$1N100% L2Wed 13 May 18:54:25Cascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec"status = ACtivity::STATUS FALLED,'recording_reason_code' →> Activity: :FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,The Flow:1. Recording is captured and marked as recorded• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDED•Inis nappens when the meeting enas ano recoraing stops successtully2. Later. recording import fails:•In ImoortBotRecordingJob.oho, when fetchina the bot recording fails after max retries (line 59)Status is set to STATUS FATIEN• BUT recording state is NOT updated - it remains as 'recordedResult: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina wasecording_state are set together.(2AL)SWE-1.6ostt zz• B3,f 4 spaces...
|
NULL
|
3384934525118593747
|
NULL
|
click
|
ocr
|
NULL
|
rireroxcalMistorbookmarksrravsco.sProledeyCreateBo rireroxcalMistorbookmarksrravsco.sProledeyCreateBotJob.php© TextRelayService.phpDeleteBotJob.phpc Imporbotkecoraing.© RemoveBotFromCall.Textmessagingservice.php© SendAudioNotificatic( SendChatMessageJc© StartRecordingJob.pl(C) UpdateElasticSearch.ohgStopRecordingJob.pl 9.11.23Hristova 11_ WebhooksC) DatadoaMetricsService.© RecallAlService.phpc) ScreenShareService.oha SecuritvStrategyStreamingTeamTelephony© ClientTokenGenerator.p 9.11.23 Hristova© InsightsService.php18.06.25 Vasilevc) NumberAllocator nho© TextMessagingService.f© TwilioClient.php© TwilioClientBuilder.php© TwilioService.php© TwilioSubAccountCreatiUserPilotD WebhookAostaciservice.onoservices+oclex~ D DatabaseV AEU4 console 2 s 85 msti teams 2 s 915 msti crm_configurations 1 s 350 msv & liminny@localhost«SF 718 ms4 HS_JocalV APROD4, console 1 s 915 msV A STAGINGA consoleDocker© UserInvitationDTO.php© MailboxController.php• sso.onpossocontroller.ongSmsMessage.png© SmsLength.php(C) UpdateActivityElasticSearchDocumentCommand.php x C)UpdateSinqleEntity.phpclass UodateActivitvElasticSearchDocumentCommand extends Commandpublic function handle(): void©ActivityStatusin.phpif (! $activity) {$this-›error( string: "Activity with ID/UUID {$activityId} not found");= custom.logA console (EU)(P scratch_8.json4 SF [iminny@localhost]f teams (EU]f crm_configurations (EU)© ImportBotRecordingJob.php x © Activity.phpclass 1прortborkecoraingJod excenas Jod Implements shoutauueuepublic function handle(RecallAIService $recallAIService): void$bot = $recallAIService->retrieveBot($this->activity->getExternalId());if Cempty($bot['recordings'])) {je: ' [MeetingBot] ImportTracks: Recordings not found, retrying','activityUuid' => Sthis-›activity->getUuidO.if (Sthis-›attempts() < $this-›tries) {Sthis->release" delav: self."RETRY SENINISA console [PROD]A console (STAGING]A1A$this->info( stri: "Found activity ID: {$activity->getId()}, UUID: ($activity->getUvidC* 53sunls-sintol sting. sending acuivity tor ts update...ortry f$this->eventDicnew UpdateentitPSassyntPhpStorm# OutputFFR # and id = 32412AW 1owvGO0+ii jiminny.text.relaysTx: Autoi jiminny.activities, Q MOD19763436uvid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|I sourceD external_idJu providen<null+75055b5-ec93-4d5a-b8e9-1ddf0440dSbazoom-botLocationtelephony_provider_idC from_participant_idI to_participant_idI device_idI tvoeI plavbook category idDuser_idI lead idhttos:/nationbuilder.zoom.us//8209294804682092948046:59p4elqpnc61duknujsmqg8cuo<null><null><null>conference1621529089<null>$1N100% L2Wed 13 May 18:54:25Cascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec"status = ACtivity::STATUS FALLED,'recording_reason_code' →> Activity: :FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,The Flow:1. Recording is captured and marked as recorded• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDED•Inis nappens when the meeting enas ano recoraing stops successtully2. Later. recording import fails:•In ImoortBotRecordingJob.oho, when fetchina the bot recording fails after max retries (line 59)Status is set to STATUS FATIEN• BUT recording state is NOT updated - it remains as 'recordedResult: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina wasecording_state are set together.(2AL)SWE-1.6ostt zz• B3,f 4 spaces...
|
37421
|
NULL
|
NULL
|
NULL
|
|
37422
|
1391
|
35
|
2026-05-13T15:54:25.419009+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687665419_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:54:25DOCKERO 81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
-6183279403968788860
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:54:25DOCKERO 81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37421
|
1392
|
65
|
2026-05-13T15:54:17.022707+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687657022_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-3088599111841370244
|
-8636775528843997756
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
PhostormINavigarecodeLaravelFV faVsco.js°9 master kProiect© MailboxController.phpC) CreateBotJob.ongDeleteBotJob.phpTextkelayservice.ong• sso.onpossocontroller.ongc Imporbotkecoraing.RemoveBotFromCall.Textmessagin© SendAudioNotificatic( SendChatMessageJcStartRecordingJob.pC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11©smsmessage.ong© SmsLength.phg(C) UpdateActivityElasticSearchDocumentCommand.php x (C)UpdateSinqleEntity.php© ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Command_ Webhookspublic function handle): voidC) DatadoaMetricsService.C) RecallAlService.phpif (! Sactivity) {C) ScreenShareService.ohr$this-›error( string: "Activity with ID/UUID ($activityId} not found"):a SecuritvStrategyMStreaminaTeamM Telephony© ClientTokenGenerator.p 9.11.23 Hristovac) InciahtsService nhn18.06.25 Vasilevcthic-sinfol str: "Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidC 53Cthic-sinfor stsenuing acuivity tor to update...o(c) NumberAllocator nhntry f(C) TeytMeccadinaServicerSthis->eventDispatcher->dispatch(© TwilioClient.php© TwilioClientBuilder.php(c) TwilioService.php(C) TwilioSuhAccountCreatnew Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,m llcorDilotnssyncevent: trueWebhookAostaciservice.onolarwlae-oсy7 OutoutFFR # and id = 32412fFR liminnv. text relavsfFß liminnv activitiesv O DatabaseV AEUAW 1row•O0+Tys AutdA console 2 s 85 ms(l teams 2 s 915 ms(i crm configurations 1 s 350 ms19763436uuid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|v & liminny@localhost(™ sourcecnulls«SF 718 msA HS localV APROD4, console 1 s 915 msV ASTAGING1 external ideacacchG.on02.haGa.h9oo.1ddso/.l0dCheJu providenzoom-botLocationhttos:/nationbuilder.zoom.us//82092948046AconsoleDockertelephony_provider_idI from_participant_idI to participant id82092948046•59n4elanne61duknuismaa8cuo<null><null>I device id<null>I tvneconferenceI plavbook category id16215d user_id20080M load idenulls1 row retrieved ctartina from 1 in 872 mc (eyecution: 187 mc fetchina• 685 mcl= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& ho_local Uiminny@localnost& console [PROD)]A console (EU]tiò teams [EU]tii crm_configurations [EU]© ImportBotRecordingJob.php X © Activity.phpA console [STAGING]class ImportBotRecordingJob extends Job implements ShouldQueuepublic function handle(RecallAIService SrecallAIService): void$bot = $recallAIService->retrieveBot(Sthis->activity->getExternalIdO):if (empty($bot['recordings'])) {'(MeetingBot] ImportTracks: Recordings not found, retrying'.'activityUuid' => Sthis-›activity->getUuidO.'activitvib' = sthis-›actavity->qetido.1+ sthis->attemotso < sthis->tries) <sthis->releaseddelav: self..RETRY SENONISelse t'status' => Activity:• STATUS FATLEDI'recordina reason code' => Activitv::FLAG RECORDING REASON MEETING BOT UNKNOWN.Sthic-sfanlohhl100% L2• Wed 13 May 18:54:16AskJiminnyReportActivityServiceTest vCascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1A"status = ACtivity::STATUS FALLED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWNThe Flow:1. Recording is captured and marked as recorded• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDEDI•Inis nappens when the meeting enas ano recoraing stops successtully2. Later. recording import fails:•In ImoortBotRecordingJob.oho, when fetchina the bot recording fails after max retries (line 59)Status is set to STATUS FATLEN• BUT recording state is NOT updated - it remains as 'recordedResult: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina waswdo al «Ask anything (8AL)+ <> Code SWE-1.6CSVW Windsurf Teams 37:25 (10 chars) UTF-8 P 4 spaces ®...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37420
|
1391
|
34
|
2026-05-13T15:54:17.031906+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687657031_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-943456739835505562
|
-8636494053633454656
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:54:16DOCKERO 81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84ffmpegО ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37418
|
NULL
|
NULL
|
NULL
|
|
37419
|
1392
|
64
|
2026-05-13T15:54:13.210808+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687653210_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-7429716278976468786
|
-8636355650190325311
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
PhostormINavigarecodeLaravelFV faVsco.js°9 master kProiect v© MailboxController.phpC) CreateBotJob.ongDeleteBotJob.phpTextkelayservice.ong• sso.onpossocontroller.ongc Imporbotkecoraing.RemoveBotFromCall.Textmessagin© SendAudioNotificatic( SendChatMessageJcStartRecordingJob.pC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11©smsmessage.ong© SmsLength.phgC) UpdateActivityElasticSearchDocumentCommand.php X (C)UpdateSinqleEntity.php© ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Command_ Webhookspublic function handle): voidC) DatadoaMetricsService.C) RecallAlService.phpif (! Sactivity) {C) ScreenShareService.ohr$this-›error( string: "Activity with ID/UUID ($activityId} not found"):a SecurityStrategyMStreaminaTeamM Telephony© ClientTokenGenerator.p 9.11.23 Hristovac) InciahtsService nhn18.06.25 Vasilevcthic-sinfol str: "Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidC 53Cthic-sinfor stsenuing acuivity tor to update...o(c) NumberAllocator nhntry f(C) TeytMeccadinaServicerSthis->eventDispatcher->dispatch(© TwilioClient.php© TwilioClientBuilder.php(c) TwilioService.php(C) TwilioSuhAccountCreatnew Updatesingletntltyentityla: sactivity-›getlaoupdatelarget: Updatelarqettnum::aclIvlly,m llcorDilotnssyncevent: trueWebhookAostaciservice.onolarwlae-oсy7 OutoutFFR # and id = 32412fFR liminnv. text relavsfFß liminnv activitiesv O DatabaseV AEUAW 1owvGO0+Tys AutdA console 2 s 85 ms(l teams 2 s 915 ms(i crm configurations 1 s 350 ms19763436uuid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|v & liminny@localhost(™ sourcecnulls«SF 718 msA HS localV APROD4, console 1 s 915 msV ASTAGING1 external ideacacchG.on02.haGa.h9oo.1ddso/.l0dCheJu providenzoom-botLocationhttos:/nationbuilder.zoom.us//82092948046AconsoleDockertelephony_provider_idI from_participant_idI to participant id82092948046•59n4elanne61duknuismaa8cuo<null><null>I device id<null>I tvneconferenceI plavbook category id16215d user_id20080M load idenulls1 row retrieved ctartina from 1 in 872 mc (eyecution: 187 mc fetchina- 685 mcl= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& ho_local Uiminny@localnost& console [PROD]A console (EU]tiò teams [EU]tii crm_configurations [EU]© ImportBotRecordingJob.php X © Activity.phpA console [STAGING]class ImportBotRecordingJob extends Job implements ShouldQueuepublic function handle(RecallAIService SrecallAIService): void$bot = $recallAIService->retrieveBot(Sthis->activity->getExternalIdO):lif (empty($bot['recordings'])) {'(MeetingBot] ImportTracks: Recordings not found, retrying'.'activityUuid' => Sthis-›activity->getUuidO.'activitvid' = sthis->activity->qetido.1+ sthis->attemotso < sthis->tries) <sthis->releaseddelav: self..RETRY SENONISelse t'status' => Activity:• STATUS FATLEDI'recordina reason code' => Activitv::FLAG RECORDING REASON MEETING BOT UNKNOWN.Sthic-sfanlohhl100% L2• Wed 13 May 18:54:12AskJiminnyReportActivityServiceTest vCascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1A"status = ACtivity::STATUS FALLED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWNThe FlowngBotService.php line 739, onRecordingStopped() sets recording_state to Activity::RECORDING_RE(ImportBotRecordinaJob.oho. when fetchina the bot recordina fails after max retries (line 59)s is set to STATUS_FAILEDResult: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina wasThic is different from other failure sconarios in Mept inaRotCervice.nhn (linec 191 878) where hoth ctatus andlrecordina state are ser togetherAsk anything (8AL)+ <> Code SWE-1.6wCSVW Windsurf Teams 37:25 (10 chars) UTF-8 Po 4 spaces ®...
|
37417
|
NULL
|
NULL
|
NULL
|
|
37418
|
1391
|
33
|
2026-05-13T15:54:13.211051+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687653211_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-7673782238848625796
|
-8646559087753982588
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
iTerm2Shell Project: faVsco.js, menu
master, menu
iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:54:12DOCKER881DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84ffmpegО 85ec2-user@ip-10-30-129-...886ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37417
|
1392
|
63
|
2026-05-13T15:54:02.144871+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687642144_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
2589608401436695617
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37415
|
1392
|
61
|
2026-05-13T15:53:55.227788+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687635227_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"}]...
|
-8748545896676705439
|
-3952987944371643610
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37414
|
1391
|
32
|
2026-05-13T15:53:55.220356+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687635220_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-793261121814569840
|
-3989588489578378452
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}...
|
37410
|
NULL
|
NULL
|
NULL
|
|
37413
|
1392
|
60
|
2026-05-13T15:53:53.068824+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687633068_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
37412
|
NULL
|
NULL
|
NULL
|
|
37396
|
1392
|
49
|
2026-05-13T15:53:28.843881+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687608843_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37394
|
1392
|
47
|
2026-05-13T15:53:19.052455+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687599052_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-793261121814569840
|
-3989588489578378452
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37393
|
1391
|
25
|
2026-05-13T15:53:19.030772+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687599030_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-8091736795795357716
|
-3950736144558023898
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37392
|
1392
|
46
|
2026-05-13T15:53:07.976980+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687587976_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-5187215517464698470
|
-8348545152461722172
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
PhostormINavigarecodeLaravelFV faVsco.js°9 master kProiect© MailboxController.phpC) CreateBotJob.ongDeleteBotJob.phpTextkelayservice.ong• sso.onpossocontroller.ongc Imporbotkecoraing.RemoveBotFromCall.TextmessaginSendAudioNotificatic( SendChatMessageJcStartRecordingJob.pC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11©smsmessage.ong© SmsLength.phgC) UpdateActivityElasticSearchDocumentCommand.php X (C)UpdateSinqleEntity.php© ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Command_ Webhookspublic function handle): voidC) DatadoaMetricsService.C) RecallAlService.phpif (! Sactivity) {c) ScreenShareService.oh$this-›error( string: "Activity with ID/UUID ($activityId} not found"):a SecurityStrategyMStreaminaTeamM Telephony© ClientTokenGenerator.p 9.11.23 Hristovac) InciahtsService nhn18.06.25 Vasilevcthic-sinfol str: "Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidC 53Cthic-sinfor stsenuing acuivity tor to update...o(c) NumberAllocator nhntry f(C) TeytMeccadinaServicerSthis->eventDispatcher->dispatch(© TwilioClient.php© TwilioClientBuilder.php(c) TwilioService.php(C) TwilioSuhAccountCreatnew Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,m llcorDilotnssyncevent: trueWebhookAostaciservice.onolarwlae7 OutoutFFR # and id = 32412fFR liminnv. text relavsfFß liminnv activitiesv O DatabaseV AEUAW 1owvGO0+Tys AutdA console 2 s 85 ms(l teams 2 s 915 ms(i crm configurations 1 s 350 ms19763436uuid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|v & liminny@localhost(™ sourcecnulls«SF 718 msA HS local1 external ideacacchG.on02.haGa.h9oo.1ddso/.l0dCheJu providenzoom-botV APROD4, console 1 s 915 msV ASTAGINGLocationhttos:/nationbuilder.zoom.us//82092948046AconsoleDockertelephony_provider_idI from_participant_idI to participant id82092948046•59n4elanne61duknuismaa8cuo<null><null>I device id<null>I tvneconferenceI plavbook category id16215d user_id20080M load idenulls1 row retrieved ctartina from 1 in 872 mc (eyecution: 187 mc fetchina- 685 mcl= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& ho_local Uiminny@localnostA console (EU]tiò teams [EU]fii crm_configurations [EU]© ImportBotRecordingJob.php X © Activity.phpclass ImportBotRecordingJob extends Job implements ShouldQueuepublic function handle(RecallAIService SrecallAIService): void$bot = $recallAIService->retrieveBot(Sthis->activity->getExternalIdO):lif (empty($bot['recordings'])) {'(MeetingBot] ImportTracks: Recordings not found, retrying'.'activityUuid' => Sthis-›activity-›getUuido.'activitvid' = sthis->activity->qetido.1+ sthis->attemotso < sthis->tries) <sthis->releaseddelav: self..RETRY SENONISelse t'status' => Activity:• STATUS FATLEDI'recordina reason code' => Activitv::FLAG RECORDING REASON MEETING BOT UNKNOWN.Sthic-sfanlohhl100% L2• Wed 13 May 18:53:07AskJiminnyReportActivityServiceTest v& console [PROD]CascadeA console [STAGING]r Role SeleRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1Alaop/Services/RecallAI/Jobs/ImoortBotRecordiingJob.oho (line 59)• php$this->activity->update([status = Activity:: STATUS FALLED,'recording_reason_code' = Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,The FlowetingBotService.php line 739, onRecordingStopped() sets recording_ state to Activity::RECORDINIlen the meeting ends and recording stops successtully2.Later. recording import tails.•In ImportBotRecordingJob.php, when tetching the bot recording tails after max retries (line 59Status is set to STATIIC SATIEN•BUT recording state is NoT updated - it remains as 'recorded"Result: Activity has status='failed' (because imoort failed) but recordina state='recorded' because recordina wasThis is different from other failure scenarios in Meet inaBotService.ohn (lines 481. 878) where both status andlrecording state are set togetherdo al aAsk anything (8AL)+ <> Code SWE-1.6CSVW Windsurf Toams 27-25 (10 charc) UTF.8 Al A enadoe...
|
37390
|
NULL
|
NULL
|
NULL
|
|
37391
|
1391
|
24
|
2026-05-13T15:53:07.954566+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687587954_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-83047842901774713
|
-7051219563329770554
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:53:07DOCKER•₴81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id":"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23]production.INFO: [SocialAccount0bserver] Saving model {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37389
|
NULL
|
NULL
|
NULL
|
|
37390
|
1392
|
45
|
2026-05-13T15:53:04.121268+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687584121_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormINavigarecodeLaravelFV faVsco.js°9 master PhostormINavigarecodeLaravelFV faVsco.js°9 master kProiect© MailboxController.phpC) CreateBotJob.ongDeleteBotJob.phpTextkelayservice.ong• sso.onpossocontroller.ongc Imporbotkecoraing.RemoveBotFromCall.Textmessagin© SendAudioNotificatic( SendChatMessageJcStartRecordingJob.pC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11©smsmessage.ong© SmsLength.phg(C) UpdateActivityElasticSearchDocumentCommand.php x (C)UpdateSinqleEntity.php© ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Command_ Webhookspublic function handle): voidC) DatadoaMetricsService.C) RecallAlService.phpif (! Sactivity) {c) ScreenShareService.oh$this-›error( string: "Activity with ID/UUID ($activityId} not found"):a SecurityStrategyMStreaminaTeamM Telephony© ClientTokenGenerator.p 9.11.23 Hristovac) InciahtsService nhn18.06.25 Vasilevcthic-sinfol str"Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidC 53Cthic-sinfor stsenuing acuivity tor to update...o(c) NumberAllocator nhntry f(C) TeytMeccadinaServicerSthis->eventDispatcher->dispatch(© TwilioClient.php© TwilioClientBuilder.php(c) TwilioService.php(C) TwilioSuhAccountCreatnew Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,m llcorDilotnssyncevent: trueWebhookAostaciservice.onolarwlae-oсy7 OutoutFFR # and id = 32412fFR liminnv. text relavsfFß liminnv activitiesv O DatabaseV AEUAW 1row•O0+Tys AutdA console 2 s 85 ms(l teams 2 s 915 ms(i crm configurations 1 s 350 ms19763436uuid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|v & liminny@localhost(™ sourcecnulls«SF 718 msA HS localV APROD4, console 1 s 915 msV ASTAGING1 external ideacacchG.on02.haGa.h9oo.1ddso/.l0dCheJu providenzoom-botLocationhttos:/nationbuilder.zoom.us//82092948046AconsoleDockertelephony_provider_idI from_participant_idI to participant id82092948046•59n4elanne61duknuismaa8cuo<null><null>I device id<null>I tvneconferenceI plavbook category id16215d user_id20080M load idenulls1 row retrieved ctartina from 1 in 872 mc (eyecution: 187 mc fetchina• 685 mcl= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& ho_local Uiminny@localnostA console (EU]tiò teams [EU]tii crm_configurations [EU]© ImportBotRecordingJob.php X| © Activity.phpclass ImportBotRecordingJob extends Job implements ShouldQueuepublic function handle(RecallAIService SrecallAIService): void$bot = $recallAIService->retrieveBot(Sthis->activity->getExternalIdO):if (empty($bot['recordings'])) {'(MeetingBot] ImportTracks: Recordings not found, retrying'.'activityUuid' => Sthis-›activity-›getUuido.'activitvib' = sthis-›actavity->qetido.1+ sthis->attemotso < sthis->tries) <sthis->release"delav: self..RETRY SENONISelse t'status' => Activity:• STATUS FATLEDI'recordina reason code' => Activitv::FLAG RECORDING REASON MEETING BOT UNKNOWN.Sthic-sfanlo100% L2• Wed 13 May 18:53:03AskJiminnyReportActivityServiceTest v& console [PROD)]CascadeA console [STAGING]r Role SeleRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1Alaop/Services/Recal1AI/Jobs/ImoortBotRecordingJob.oho (line 59)• php$this->activity->update([status = Activity:: STATUS FALLED,'recording_reason_code' = Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,The Flow:1. Recording is captured and marked as recorded:• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDEDThis happens when the meeting ends and recording stops successfully2.Later. recording import tails.•In ImportBotRecordingJob.php, when tetching the bot recording tails after max retries (line 59Status is set to STATIIC SATIEN• BUT recording state is NOT updated - it remains as 'recorded'Result: Activity has status='failed' (because imoort failed) but recordina state='recorded' because recordina wasThis is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status andrecording state are set togetherdo al aAsk anything (8AL)+ <> Code SWE-1.6CSVW Windsurf Teams 37:25 (10 chars) UTF-8 Po 4 spaces ®...
|
NULL
|
5727264400764452470
|
NULL
|
click
|
ocr
|
NULL
|
PhostormINavigarecodeLaravelFV faVsco.js°9 master PhostormINavigarecodeLaravelFV faVsco.js°9 master kProiect© MailboxController.phpC) CreateBotJob.ongDeleteBotJob.phpTextkelayservice.ong• sso.onpossocontroller.ongc Imporbotkecoraing.RemoveBotFromCall.Textmessagin© SendAudioNotificatic( SendChatMessageJcStartRecordingJob.pC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11©smsmessage.ong© SmsLength.phg(C) UpdateActivityElasticSearchDocumentCommand.php x (C)UpdateSinqleEntity.php© ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Command_ Webhookspublic function handle): voidC) DatadoaMetricsService.C) RecallAlService.phpif (! Sactivity) {c) ScreenShareService.oh$this-›error( string: "Activity with ID/UUID ($activityId} not found"):a SecurityStrategyMStreaminaTeamM Telephony© ClientTokenGenerator.p 9.11.23 Hristovac) InciahtsService nhn18.06.25 Vasilevcthic-sinfol str"Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidC 53Cthic-sinfor stsenuing acuivity tor to update...o(c) NumberAllocator nhntry f(C) TeytMeccadinaServicerSthis->eventDispatcher->dispatch(© TwilioClient.php© TwilioClientBuilder.php(c) TwilioService.php(C) TwilioSuhAccountCreatnew Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,m llcorDilotnssyncevent: trueWebhookAostaciservice.onolarwlae-oсy7 OutoutFFR # and id = 32412fFR liminnv. text relavsfFß liminnv activitiesv O DatabaseV AEUAW 1row•O0+Tys AutdA console 2 s 85 ms(l teams 2 s 915 ms(i crm configurations 1 s 350 ms19763436uuid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|v & liminny@localhost(™ sourcecnulls«SF 718 msA HS localV APROD4, console 1 s 915 msV ASTAGING1 external ideacacchG.on02.haGa.h9oo.1ddso/.l0dCheJu providenzoom-botLocationhttos:/nationbuilder.zoom.us//82092948046AconsoleDockertelephony_provider_idI from_participant_idI to participant id82092948046•59n4elanne61duknuismaa8cuo<null><null>I device id<null>I tvneconferenceI plavbook category id16215d user_id20080M load idenulls1 row retrieved ctartina from 1 in 872 mc (eyecution: 187 mc fetchina• 685 mcl= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& ho_local Uiminny@localnostA console (EU]tiò teams [EU]tii crm_configurations [EU]© ImportBotRecordingJob.php X| © Activity.phpclass ImportBotRecordingJob extends Job implements ShouldQueuepublic function handle(RecallAIService SrecallAIService): void$bot = $recallAIService->retrieveBot(Sthis->activity->getExternalIdO):if (empty($bot['recordings'])) {'(MeetingBot] ImportTracks: Recordings not found, retrying'.'activityUuid' => Sthis-›activity-›getUuido.'activitvib' = sthis-›actavity->qetido.1+ sthis->attemotso < sthis->tries) <sthis->release"delav: self..RETRY SENONISelse t'status' => Activity:• STATUS FATLEDI'recordina reason code' => Activitv::FLAG RECORDING REASON MEETING BOT UNKNOWN.Sthic-sfanlo100% L2• Wed 13 May 18:53:03AskJiminnyReportActivityServiceTest v& console [PROD)]CascadeA console [STAGING]r Role SeleRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1Alaop/Services/Recal1AI/Jobs/ImoortBotRecordingJob.oho (line 59)• php$this->activity->update([status = Activity:: STATUS FALLED,'recording_reason_code' = Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,The Flow:1. Recording is captured and marked as recorded:• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDEDThis happens when the meeting ends and recording stops successfully2.Later. recording import tails.•In ImportBotRecordingJob.php, when tetching the bot recording tails after max retries (line 59Status is set to STATIIC SATIEN• BUT recording state is NOT updated - it remains as 'recorded'Result: Activity has status='failed' (because imoort failed) but recordina state='recorded' because recordina wasThis is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status andrecording state are set togetherdo al aAsk anything (8AL)+ <> Code SWE-1.6CSVW Windsurf Teams 37:25 (10 chars) UTF-8 Po 4 spaces ®...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37389
|
1391
|
23
|
2026-05-13T15:53:04.123399+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687584123_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:53:03DOCKERO 81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
-4595849752730474874
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:53:03DOCKERO 81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37388
|
1391
|
22
|
2026-05-13T15:52:57.475546+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687577475_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
37384
|
NULL
|
NULL
|
NULL
|
|
37387
|
1392
|
44
|
2026-05-13T15:52:55.119695+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687575119_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
37386
|
NULL
|
NULL
|
NULL
|
|
37360
|
1392
|
25
|
2026-05-13T15:51:13.880538+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687473880_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormINavigarecodeLaravelFV faVsco.js°9 master PhostormINavigarecodeLaravelFV faVsco.js°9 master kProiect v© MailboxController.phpC) CreateBotJob.ongDeleteBotJob.phpTextkelayservice.ong• sso.onpossocontroller.ongc Imporbotkecoraing.RemoveBotFromCall.TextmessaginSendAudioNotificatic( SendChatMessageJcStartRecordingJob.pC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11©smsmessage.ong© SmsLength.phpC) UpdateActivityElasticSearchDocumentCommand.php X (C)UpdateSinqleEntity.php© ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Command_ Webhookspublic function handle): voidC) DatadoaMetricsService.C) RecallAlService.phpif (! Sactivity) {c) ScreenShareService.oh$this-›error( string: "Activity with ID/UUID ($activityId} not found"):a SecurityStrategyMStreaminaTeamM Telephony© ClientTokenGenerator.p 9.11.23 Hristovac) InciahtsService nhn18.06.25 Vasilevcthic-sinfol str: "Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidCCthic-sinfor stsenuing acuivity tor to update...o(c) NumberAllocator nhntry f(C) TeytMeccadinaServicerSthis->eventDispatcher->dispatch(© TwilioClient.php© TwilioClientBuilder.php(c) TwilioService.php(C) TwilioSuhAccountCreatnew Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,m llcorDilotnssyncevent: trueWebhookAostaciservice.onolarwlae-oсy7 OutoutFFR # and id = 32412fFR liminnv. text relavsfFß liminnv activitiesv O DatabaseV AEUAW 1row•O0+Tys AutdA console 2 s 85 ms(l teams 2 s 915 ms(i crm configurations 1 s 350 ms19763436uuid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|v & liminny@localhost(™ sourcecnulls«SF 718 msA HS localV APROD4, console 1 s 915 msV ASTAGING1 external ideacacchG.on02.haGa.h9oo.1ddso/.l0dCheJu providenzoom-botLocationhttos:/nationbuilder.zoom.us//82092948046AconsoleDockertelephony_provider_idI from_participant_idI to participant id82092948046•59n4elanne61duknuismaa8cuo<null><null>I device id<null>I tvneconferenceI plavbook category id16215d user_id20080M load idenulls1 row retrieved ctartina from 1 in 872 mc (eyecution: 187 mc fetchina- 685 mclhhl100% L2• Wed 13 May 18:51:13AskJiminnyReportActivityServiceTest v= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& console [PROD)]CascadeA console (EU]tiò teams [EU]fii crm_configurations [EU]ImportBotRecordingJob.php x ©Activity.phpA console [STAGING]r Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Recclass ImportBotRecordingJob extends Job implements ShouldQueue"Status = ACtiVity::STATUS FALLED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN25 €public Squeue = Queue\BotsQueueConstants::B0TS_IMPORT_TRACKS;public function __construct(private readonly Activity $activity)The Flow:1. Recording is captured and marked as recorded• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDEDI• This happens when the meeting ends and recording stops successfully* Import video tracks from Recall.ai to client-data S3 bucket2. Later. recording import fails:public function handle(RecallAIService SrecallAIService): void•In ImoortBotRecordingJob.oho, when fetchina the bot recording fails after max retries (line 59)Status is set to STATUS FATLENLog:: info(• BUT recording state is NOT updated - it remains as 'recorded'gBotl ImportTracks: START Importing tracks for activity: •Sthis->activity->getUuido.Cacande 901=11Command 991Result: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina wasThic is different from other failure sconarios in Mept inaRotCervice.nhn (linec 191 878) where hoth ctatus andlactivitvid' => sthis->activity->qetidorrecordina state are ser togetherdo al «Sbot = SrecallAlService->retrieveßot(Sthis->activity->qetExternauidon:if (emotv(Sbot['recordinas'l)) {Loa: errordAsk anything (8AL)message: '[MeetingBot] ImportTracks: Recordings not found, retrying',+ <> Code SWE-1.6CSVW Windsurf Teams 37:25 (10 chars) UTF-8 Po 4 spaces ®...
|
NULL
|
-7446674007860749047
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhostormINavigarecodeLaravelFV faVsco.js°9 master PhostormINavigarecodeLaravelFV faVsco.js°9 master kProiect v© MailboxController.phpC) CreateBotJob.ongDeleteBotJob.phpTextkelayservice.ong• sso.onpossocontroller.ongc Imporbotkecoraing.RemoveBotFromCall.TextmessaginSendAudioNotificatic( SendChatMessageJcStartRecordingJob.pC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11©smsmessage.ong© SmsLength.phpC) UpdateActivityElasticSearchDocumentCommand.php X (C)UpdateSinqleEntity.php© ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Command_ Webhookspublic function handle): voidC) DatadoaMetricsService.C) RecallAlService.phpif (! Sactivity) {c) ScreenShareService.oh$this-›error( string: "Activity with ID/UUID ($activityId} not found"):a SecurityStrategyMStreaminaTeamM Telephony© ClientTokenGenerator.p 9.11.23 Hristovac) InciahtsService nhn18.06.25 Vasilevcthic-sinfol str: "Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidCCthic-sinfor stsenuing acuivity tor to update...o(c) NumberAllocator nhntry f(C) TeytMeccadinaServicerSthis->eventDispatcher->dispatch(© TwilioClient.php© TwilioClientBuilder.php(c) TwilioService.php(C) TwilioSuhAccountCreatnew Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,m llcorDilotnssyncevent: trueWebhookAostaciservice.onolarwlae-oсy7 OutoutFFR # and id = 32412fFR liminnv. text relavsfFß liminnv activitiesv O DatabaseV AEUAW 1row•O0+Tys AutdA console 2 s 85 ms(l teams 2 s 915 ms(i crm configurations 1 s 350 ms19763436uuid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|v & liminny@localhost(™ sourcecnulls«SF 718 msA HS localV APROD4, console 1 s 915 msV ASTAGING1 external ideacacchG.on02.haGa.h9oo.1ddso/.l0dCheJu providenzoom-botLocationhttos:/nationbuilder.zoom.us//82092948046AconsoleDockertelephony_provider_idI from_participant_idI to participant id82092948046•59n4elanne61duknuismaa8cuo<null><null>I device id<null>I tvneconferenceI plavbook category id16215d user_id20080M load idenulls1 row retrieved ctartina from 1 in 872 mc (eyecution: 187 mc fetchina- 685 mclhhl100% L2• Wed 13 May 18:51:13AskJiminnyReportActivityServiceTest v= custom.logscratch &.ison= laravel.logA SF jiminny@localhost]& console [PROD)]CascadeA console (EU]tiò teams [EU]fii crm_configurations [EU]ImportBotRecordingJob.php x ©Activity.phpA console [STAGING]r Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Recclass ImportBotRecordingJob extends Job implements ShouldQueue"Status = ACtiVity::STATUS FALLED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN25 €public Squeue = Queue\BotsQueueConstants::B0TS_IMPORT_TRACKS;public function __construct(private readonly Activity $activity)The Flow:1. Recording is captured and marked as recorded• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDEDI• This happens when the meeting ends and recording stops successfully* Import video tracks from Recall.ai to client-data S3 bucket2. Later. recording import fails:public function handle(RecallAIService SrecallAIService): void•In ImoortBotRecordingJob.oho, when fetchina the bot recording fails after max retries (line 59)Status is set to STATUS FATLENLog:: info(• BUT recording state is NOT updated - it remains as 'recorded'gBotl ImportTracks: START Importing tracks for activity: •Sthis->activity->getUuido.Cacande 901=11Command 991Result: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina wasThic is different from other failure sconarios in Mept inaRotCervice.nhn (linec 191 878) where hoth ctatus andlactivitvid' => sthis->activity->qetidorrecordina state are ser togetherdo al «Sbot = SrecallAlService->retrieveßot(Sthis->activity->qetExternauidon:if (emotv(Sbot['recordinas'l)) {Loa: errordAsk anything (8AL)message: '[MeetingBot] ImportTracks: Recordings not found, retrying',+ <> Code SWE-1.6CSVW Windsurf Teams 37:25 (10 chars) UTF-8 Po 4 spaces ®...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37350
|
1392
|
18
|
2026-05-13T15:50:41.170223+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687441170_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4235983745889776938
|
-8204421443435123770
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
PhostormINavigareCodeLaravelFV faVsco.js°9 master kProject© MailboxController.phpCreateBotJob.phpTextkelayservice.ongDeleteBotJob.phpc Imporbotkecoraing.© RemoveBotFromCall.Textmessagin© SendAudioNotificatic( SendChatMessageJc© StartRecordingJob.plC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11_ WebhooksC) DatadoaMetricsService.C) RecallAlService.phpc) ScreenShareService.oha SecuritvStrategyStreamingTeamTelephony© ClientTokenGenerator.p 9.11.23 Hristova© InsightsService.php18.06.25 Vasilev(c) NumberAllocator nhn©TextMessagingService.f© TwilioClient.php© TwilioClientBuilder.php© TwilioService.php© TwilioSubAccountCreatiUserPilotD WebhookAostaciservice.ono• sso.onpossocontroller.ong©smsmessage.ong© SmsLength.php(C) UpdateActivityElasticSearchDocumentCommand.php x C) UpdateSinqleEntity.php© ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Commandpublic function handle(): voidif (! $activity) {$this-›error( string: "Activity with ID/UUID {SactivityId} not found");$this->info( stri$this->info( str: "Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidCsenuing acuivity tor to update...otry fSthis->eventDispatcher->dispatch(new Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,nssyncevent: truelarwlaeToe|×~ D DatabaseV AEU4 console 2 s 85 msti teams 2 s 915 msti crm_configurations 1 s 350 msv & liminny@localhost«SF 718 ms4 HS_JocalV APROD4, console 1 s 915 msV A STAGINGA consoleDocker# OutputAW 1row•O0+FFR # and id = 32412fFR liminnv. text relavsTx: Autoi jiminny.activities, Q MOD19763436uvid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|I sourceD external_idJu providen<null+75055b5-ec93-4d5a-b8e9-1ddf0440dSbazoom-botLocationtelephony_provider_idI from_participant_idI to_participant_idI device_idI tvoeI plavbook category idDuser_idI lead idhttos:/nationbuilder.zoom.us//8209294804682092948046:59p4elqpnc61duknujsmqg8cuo<null><null><null>conference1621529089<null1 row retrieved starting from 1 in 872 ms (execution: 187 ms, fetching: 685 ms)= custom.logA console (EU)(P scratch_8.jsonE laravel.log4 SF [jiminny@localhost]f teams (EU]f crm_configurations (EU)class ImportBotRecordingJob extends Job implements ShouldQueueImportBotRecordingJob.php X © Activity.php25 ©tpublic $queue = Queue\BotsQueueConstants::B0TS_IMPORT_TRACKS;public function __construct(private readonly Activity $activity)A console [PROD]A console (STAGING]48* Import video tracks from Recall.ai to client-data S3 bucketpublic function handle(RecallAIService $recallAIService): voidLog:: info(message: '[MeetingBot] ImportTracks: START Importing tracks for activity: *$this->activity->getUuidO),activitvid' => sthis->activity->qetidorSbot = SrecallAlService->retrieveßot(Sthis->activity->qetExternauidon:if Cempty($botl'recordings'])) €Loa: errord'[MeetingBot] ImportTracks: Recordings not found, retrying'A1Ahihl100% L28• Wed 13 May 18:50:41U AskJiminnyReportActivityServiceTest~Cascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 .."Status = ACtivity::STATUS FALLED'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWNThe Flow:1. Recording is captured and marked as recorded• In MeetingBotService.php line 739, onRecordingStopped () sets recording_state to Activity: :RECORDING_RECORDED• This happens when the meeting ends and recording stops successfully2. Later. recording import fails:•In ImoortBotRecordingJob.oho, when fetchina the bot recording fails after max retries (line 59)• Status is set to STATUS FAILED• BUT recording state is NOT updated - it remains as 'recorded"Result: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina wasThis is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status andrecordina state are set togetherdo all «=.Ask anything (20L)+ <> Code SWE-1.6CSvut d *, 0, 8,W Windsurf Teams 48:74 (56 chars) UTF-8 Pa 4 spaces ®...
|
37348
|
NULL
|
NULL
|
NULL
|
|
37349
|
1391
|
10
|
2026-05-13T15:50:41.184504+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687441184_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4235983745889776938
|
-8204421443435123770
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:50:40DOCKERO 81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37346
|
NULL
|
NULL
|
NULL
|
|
37348
|
1392
|
17
|
2026-05-13T15:50:38.567675+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687438567_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37345
|
1392
|
15
|
2026-05-13T15:50:28.991456+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687428991_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"}]...
|
-8748545896676705439
|
-3952987944371643610
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37322
|
1392
|
0
|
2026-05-13T15:49:20.393794+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687360393_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
37320
|
NULL
|
NULL
|
NULL
|
|
37321
|
1391
|
0
|
2026-05-13T15:49:18.274840+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687358274_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
37316
|
NULL
|
NULL
|
NULL
|
|
37319
|
1390
|
72
|
2026-05-13T15:49:14.323564+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687354323_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"}]...
|
547052977114582991
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project...
|
37318
|
NULL
|
NULL
|
NULL
|
|
37253
|
1390
|
27
|
2026-05-13T15:45:34.758421+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687134758_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37237
|
1390
|
14
|
2026-05-13T15:44:52.445845+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687092445_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
37236
|
NULL
|
NULL
|
NULL
|
|
37236
|
1390
|
13
|
2026-05-13T15:44:47.063499+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687087063_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormINavigareCodeLaravelFV faVsco.js°9 master PhostormINavigareCodeLaravelFV faVsco.js°9 master kProject© MailboxController.phpCreateBotJob.phpTextkelayservice.ongDeleteBotJob.phpc Imporbotkecoraing.© RemoveBotFromCall.Textmessagin© SendAudioNotificatic( SendChatMessageJc© StartRecordingJob.plC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11_ WebhooksC) DatadoaMetricsService.C) RecallAlService.phpc) ScreenShareService.oha SecurityStrategyStreamingTeamTelephony© ClientTokenGenerator.p 9.11.23 Hristova© InsightsService.php18.06.25 Vasilev(c) NumberAllocator nhn©TextMessagingService.f© TwilioClient.php© TwilioClientBuilder.php© TwilioService.php© TwilioSubAccountCreatiUserPilotD WebhookAostaciservice.ono• sso.onpossocontroller.ong©smsmessage.ong© SmsLength.php(C) UpdateActivityElasticSearchDocumentCommand.php x (C)UpdateSinqleEntity.php©ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Commandpublic function handle(): voidif (! $activity) {$this-›error( string: "Activity with ID/UUID {SactivityId} not found");$this->info( stri$this->info( str: "Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidC 54senuing acuivity tor to update...otry fSthis->eventDispatcher->dispatch(new Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,nssyncevent: truelarwlaeToe|×~ D DatabaseV AEU4 console 2 s 85 msti teams 2 s 915 msti crm_configurations 1 s 350 msv & liminny@localhost«SF 718 ms4 HS_JocalV APROD4, console 1 s 915 msV A STAGINGA consoleDocker# OutputAW 1owvGO0+FFR # and id = 32412fFR liminnv. text relavsTx: Autoi jiminny.activities, Q MOD19763436uvid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|I sourceD external_idJu providen<null+75055b5-ec93-4d5a-b8e9-1ddf0440dSbazoom-botLocationtelephony_provider_idI from_participant_idI to_participant_idI device_idI tvoeI plavbook category idDuser_idI lead idhttos:/nationbuilder.zoom.us//8209294804682092948046:59p4elqpnc61duknujsmqg8cuo<null><null><null>conference1621529089<null1 row retrieved starting from 1 in 872 ms (execution: 187 ms, fetching: 685 ms)= custom.logA console (EU)(P scratch_8.jsonE laravel.log4 SF [iminny@localhost]f teams (EU]f crm_configurations (EU)ImportBotRecordingJob.php x © Activity.phpclass ImportBotRecordingJob extends Job implements ShouldQueuepublic function handle(RecallAIService $recallAIService): voidA console [PROD]A console (STAGING]$bot = $recallAIService->retrieveBot($this->activity->getExternalId):lif Cempty($bot['recordings'])) {Log. .error'(MeetingBot] ImportTracks: Recordings not found, retrying'.acuiviryuuld' = schis->acuv1cv->qecUu100acuiviryiu = schis->actnry->qerlo.1f (Sthis->attemotso < sthis->trtes) <Sthis-›release( delay: self::RETRY_SECONDS);*else-$this->activity->updateCI=> Activity::STATUS_FATLED,'recordina reason code' => Activity::FLAG RECORDING REASON MEETING BOT UNKNOWN.Sthic->fanl0•hihl100% L28• Wed 13 May 18:44:46U AskJiminnyReportActivityServiceTest~Cascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1A"Status = ACtiVity::STATUS FALLED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWNThe Flow:1. Recording is captured and marked as recorded• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDED• This happens when the meeting ends and recording stops successfully2. Later. recording import fails:•In ImoortBotRecordingJob.oho, when fetchina the bot recording fails after max retries (line 59)• Status is set to STATUS FAILED• BUT recording state is NOT updated - it remains as 'recordedResult: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina wasThis is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status andrecordina state are set togetherdo al "Ask anything (20L)+ <> Code SWE-1.6CSvut d *, 0, 8,W Windsurf Teams 55:49 UTF-8 f 4 spaces 0...
|
NULL
|
-2593293199136616553
|
NULL
|
click
|
ocr
|
NULL
|
PhostormINavigareCodeLaravelFV faVsco.js°9 master PhostormINavigareCodeLaravelFV faVsco.js°9 master kProject© MailboxController.phpCreateBotJob.phpTextkelayservice.ongDeleteBotJob.phpc Imporbotkecoraing.© RemoveBotFromCall.Textmessagin© SendAudioNotificatic( SendChatMessageJc© StartRecordingJob.plC) UpdateElasticSearch.phoStopRecordingJob.pl 9.11.23Hristova 11_ WebhooksC) DatadoaMetricsService.C) RecallAlService.phpc) ScreenShareService.oha SecurityStrategyStreamingTeamTelephony© ClientTokenGenerator.p 9.11.23 Hristova© InsightsService.php18.06.25 Vasilev(c) NumberAllocator nhn©TextMessagingService.f© TwilioClient.php© TwilioClientBuilder.php© TwilioService.php© TwilioSubAccountCreatiUserPilotD WebhookAostaciservice.ono• sso.onpossocontroller.ong©smsmessage.ong© SmsLength.php(C) UpdateActivityElasticSearchDocumentCommand.php x (C)UpdateSinqleEntity.php©ActivityStatusin.phpclass UodateActivitvElasticSearchDocumentCommand extends Commandpublic function handle(): voidif (! $activity) {$this-›error( string: "Activity with ID/UUID {SactivityId} not found");$this->info( stri$this->info( str: "Found activity ID: {Sactivity->getIdO}, UUID: {Sactivity->getUuidC 54senuing acuivity tor to update...otry fSthis->eventDispatcher->dispatch(new Updatesingletntltyentityla: sactivity-›getldoupdatelarget: Updatelarqettnum::aclIvlly,nssyncevent: truelarwlaeToe|×~ D DatabaseV AEU4 console 2 s 85 msti teams 2 s 915 msti crm_configurations 1 s 350 msv & liminny@localhost«SF 718 ms4 HS_JocalV APROD4, console 1 s 915 msV A STAGINGA consoleDocker# OutputAW 1owvGO0+FFR # and id = 32412fFR liminnv. text relavsTx: Autoi jiminny.activities, Q MOD19763436uvid (UUID with time-low and time-high swapped)67cebfc2-ed56-44a2-8c68-7a0286ed8618|I sourceD external_idJu providen<null+75055b5-ec93-4d5a-b8e9-1ddf0440dSbazoom-botLocationtelephony_provider_idI from_participant_idI to_participant_idI device_idI tvoeI plavbook category idDuser_idI lead idhttos:/nationbuilder.zoom.us//8209294804682092948046:59p4elqpnc61duknujsmqg8cuo<null><null><null>conference1621529089<null1 row retrieved starting from 1 in 872 ms (execution: 187 ms, fetching: 685 ms)= custom.logA console (EU)(P scratch_8.jsonE laravel.log4 SF [iminny@localhost]f teams (EU]f crm_configurations (EU)ImportBotRecordingJob.php x © Activity.phpclass ImportBotRecordingJob extends Job implements ShouldQueuepublic function handle(RecallAIService $recallAIService): voidA console [PROD]A console (STAGING]$bot = $recallAIService->retrieveBot($this->activity->getExternalId):lif Cempty($bot['recordings'])) {Log. .error'(MeetingBot] ImportTracks: Recordings not found, retrying'.acuiviryuuld' = schis->acuv1cv->qecUu100acuiviryiu = schis->actnry->qerlo.1f (Sthis->attemotso < sthis->trtes) <Sthis-›release( delay: self::RETRY_SECONDS);*else-$this->activity->updateCI=> Activity::STATUS_FATLED,'recordina reason code' => Activity::FLAG RECORDING REASON MEETING BOT UNKNOWN.Sthic->fanl0•hihl100% L28• Wed 13 May 18:44:46U AskJiminnyReportActivityServiceTest~Cascader Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1A"Status = ACtiVity::STATUS FALLED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWNThe Flow:1. Recording is captured and marked as recorded• In MeetingBotService.php line 739, onRecordingStopped() sets recording state to Activity::RECORDING RECORDED• This happens when the meeting ends and recording stops successfully2. Later. recording import fails:•In ImoortBotRecordingJob.oho, when fetchina the bot recording fails after max retries (line 59)• Status is set to STATUS FAILED• BUT recording state is NOT updated - it remains as 'recordedResult: Activitv has status='failed' (because imoort failed) but recordina state='recorded' (because recordina wasThis is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status andrecordina state are set togetherdo al "Ask anything (20L)+ <> Code SWE-1.6CSvut d *, 0, 8,W Windsurf Teams 55:49 UTF-8 f 4 spaces 0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37235
|
1389
|
5
|
2026-05-13T15:44:47.076512+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687087076_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:44:46DOCKERDEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... 87[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
-6269540363753786352
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:44:46DOCKERDEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... 87[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37234
|
1389
|
4
|
2026-05-13T15:44:43.481120+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778687083481_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:44:43DOCKER881DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О 85ec2-user@ip-10-30-129-...886ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
-1902123780318156295
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:44:43DOCKER881DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О 85ec2-user@ip-10-30-129-...886ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37227
|
NULL
|
NULL
|
NULL
|
|
37093
|
1385
|
22
|
2026-05-13T15:37:34.513772+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686654513_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4235983745889776938
|
-8204421443435123770
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:37:34DOCKERO 81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37090
|
NULL
|
NULL
|
NULL
|
|
37092
|
1386
|
35
|
2026-05-13T15:37:27.226170+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686647226_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"bounds":{"left":0.1619016,"top":0.0,"width":0.31981382,"height":1.0},"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
7638119396218915760
|
-3989588489578378452
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37091
|
1386
|
34
|
2026-05-13T15:37:26.600462+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686646600_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"bounds":{"left":0.1619016,"top":0.0,"width":0.31981382,"height":1.0},"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
37089
|
NULL
|
NULL
|
NULL
|
|
37090
|
1385
|
21
|
2026-05-13T15:37:26.270680+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686646270_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
click
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37089
|
1386
|
33
|
2026-05-13T15:37:24.643092+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686644643_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4047408223668449518
|
-8636777727364969024
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
PhostormINavigarecodeFV faVsco.js© MailboxController.phpReso vers© TextRelayService.phg?Draitsossocontroller.ongValidatorsC) BatchCriteria,oholellowweesage.phg© SmsLength.phg1BatchCriterialnterface.oC)BatchService.oho© BatchServicelnterface.p © UpdateElasticSearch.phc(C) UpdateActivityElasticSearchDocumentCommand.php x C)UpdateSinqleEntity.php© ActivityStatusin.phpCSmailActivitvService.omtHristova 11class UodateActivitvElasticSearchDocumentCommand extends Command0 SmailActivitvServicelnte(C) EmailMessage.ohnpublic function handle(): void© EmailMessageinterface. 9.11.23C) InboyService.ohn© InboxServicelnterface.p(1 InternetMeccagelnterfal© MailChannelService.phpTextkelayselwice.ong› C MeetingGenerator0 Notification(7 OAuth2D Recallal> Actions>_ CommandsVUJOOS© CreateBot.Job.phpDeleteBot.Job.php© ImportBotRecording-RemoveBotFromCall.© SendAudioNotificatic 9.11.23 HristovaC) SendchatMessagec 18.00.25 vasilev@ StartRecordina.Job.nC StooRecordina.0b.om Webhooks(C) DatadoaMetricsService(C) RecallA|Service.oh(C) ScreenShareService.ohSecurityD Strategym StreamingD Team18.06.25 VasilevM Telenhonvc) clientlokengenerator.p© InsightsService.phpc) NumberAllocator.pnpc)lextmessagingservice..011.22 Hrictova 57c) wilioclient.ohocwilloclientBullder.ono011.22 Hrictova© TwilioService.php© TwilioSubAccountCreat> M UserPilot• WebhookC. AbstractService.ohdC) ActivitvProviderFactorv.onSactivityld = $this-›argument( key: 'activityid'):$this->info( string: "Searching for activity with: {Sactivityld}");if (is_numeric(Sactivityld)) 1Cactivitv = Activitv. finddint) Sactivitvtd)•} else {Cactivitv = Activity.- whenp & colul'uuid', tJiminny Traits-RequiresUUID::toOptimiztif (! Sactivity) {Sthis->error( string: "Activity with ID/UUID {SactivityId} not found");Sthis->info( string: "Found activity ID: {Sactivity->getIdO}. UUID: {Sactivity->qetUuid@sth1s->intol su'Sending activity for ES update...'):Sthis->eventDispatcher->dispatchdnew UodateSinaleEntitvoentitvid: Sactivity->oetidoSthis->infod strina: "Done. ")*catch Excention Se)4$this->error( string: 'Failed to update ES: '. $e->getMessageO):cthic-sonnon/Co-saotTnaco/cCtninaon•= custom.logscratch. &.isonA SF jiminny@localhost]A console (EU]tiò teams [EU]tii crm_configurations [EU]ImporbotkecoraingJoo.ongxOAcuvicy.ongclass 1прortborkecoraingJod excenas Jod Implements shoulauueuepublic function handle(RecallAIService SrecallAIService): voidSDor = SrecaLLALservice-›recrlevebor(schis-›acclvicy-›gecexcernaclaoif (empty(Sbot['recordings'])) {'[MeetingBot) Importiracks: Recordings not found, retrying.'activitvuuld' => Sthis->actzvity->getUu1dolactivitvio => sths->activity->oetidoif (Sthis-›attempts() < $this->tries) 1Sthis->released delav: self::RETRY SECONDS)•else {$this->activity->update(['status' => Activity::STATUS_FAILED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,Sthic-sfailo•recurnStrack = Sthis->createVideoTrack(Sbot['video_url']):sth1s->createAud10lrackstrackoasoatchlnew ImoortRecallAiRecordanas.o0irecordinas: Shot'recordinas']team: sthis->activity->getteam@l1 usagennivate function croateVidenTrackOstring Svideolini)• TrackneturnSthis-sactivitv->tnacks@->undatefntnpated'telephony_provider_id' => Sthis->activity->getMeetingTrackProviderId( type: Track::TYPE_VIDEO)100% L2• Wed 13 May 18:37:24AskJiminnyReportActivityServiceTest v& console [PROD)]CascadeA console [STAGING]r Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1ATnougntror 4ssearched conterenceralledeventin appThouaht for 2s >Read MeetingBotService.php #L540-589Read CreateBot.oho #L115-144|Read BotStatusChangeHandler.lob.ohv >Read BotStatusChangeHandlerJob.php #L410-459Searched status *=*STATUS FAILED in aoo/Services/RecallAIlThought for 1s >Read ImoortBotRecording.lob.nhn #| 50-99Inought for isBased on my search, the code location where a conference activity can have status='failed' but recording state='rec/app/Services/RecallAI/Jobs/ImportBotRecordingJob.php (line 59)• pho'recording reason_code' = Activity::FLAG_RECORDING REASON_MEETING BOT_UNKNOWN,The slow.1. Recordina is captured and marked as recorded)•In MeetinaBotServilce.oho line 739, onRecordinoStoopedo sets recording state to Activity::RECORDING REGORDED• This happens when the meeting ends and recordina stoos successfullv2 Later recordina imnort fails.• In ImportBotRecordingJob.php, when fetching the bot recording fails after max retries (line 59)•Status is set to STATUS FAILED• RUT recordina state is NOT undated - it remains as 'recorded!Result: Activity has status='failed' (because import failed) but recording state='recorded' (because recording wascantured before the import failure)This is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status ancrecordina state are set togetherr.al .Ask anvthina (84L)« CodeSWE-16WN Windsurf Toams 55.27UTF.8io 4 spaces...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37088
|
1385
|
20
|
2026-05-13T15:37:24.619479+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686644619_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-4047408223668449518
|
-8636777727364969024
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:37:24DOCKER•₴81DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id":"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23]production.INFO: [SocialAccount0bserver] Saving model {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37087
|
NULL
|
NULL
|
NULL
|
|
37087
|
1385
|
19
|
2026-05-13T15:37:20.236633+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686640236_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:37:20DOCKER0 ₴1DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
9181012283313726618
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:37:20DOCKER0 ₴1DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"О ₴5ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id" :"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37086
|
1386
|
32
|
2026-05-13T15:37:18.434150+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686638434_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormINavigarecodeFV faVsco.jsReso vers© TextRe PhostormINavigarecodeFV faVsco.jsReso vers© TextRelayService.phg?Draitsossocontroller.ongValidatorsC) BatchCriteria,oholellowweesage.phg© SmsLength.php1BatchCriterialnterface.oC)BatchService.oho© BatchServicelnterface.p © UpdateElasticSearch.phc(C) UpdateActivityElasticSearchDocumentCommand.php x C)UpdateSinqleEntity.php© ActivityStatusin.phpCSmailActivitvService.omtHristova 11class UodateActivitvElasticSearchDocumentCommand extends Command0 SmailActivitvServicelnte(C) EmailMessage.ohnpublic function handle(): void© EmailMessageinterface. 9.11.23C) InboyService.ohn© InboxServicelnterface.p(1 InternetMeccagelnterfal© MailChannelService.phpTextkelayselwice.ong› C MeetingGenerator0 Notification(7 OAuth2D Recallal> Actions>_ CommandsVUJOOS© CreateBot.Job.phpDeleteBot.Job.php© ImportBotRecording-RemoveBotFromCall!© SendAudioNotificatic 9.11.23 HristovaC) SendchatMessagec 18.00.25 vasilev@ StartRecordina.Job.nC StooRecordina.0b.om Webhooks(C) DatadoaMetricsServiceC) RecallA|Service.ohn(C) ScreenShareService.ohSecurityD Strategym StreamingD Team18.06.25 VasilevM Telenhonvc) clientlokengenerator.p© InsightsService.phpc) NumberAllocator.pnpc)lextmessagingservice..011.22 Hrictova 57c) wilioclient.ohocwilloclientBullder.ono011.22 Hrictova© TwilioService.php© TwilioSubAccountCreat> M UserPilot• WebhookC. AbstractService.ohdC) ActivitvProviderFactorv.onSactivityld = $this-›argument( key: 'activityid'):$this->info( string: "Searching for activity with: {Sactivityld}");if (is_numeric(Sactivityld)) 1Cactivitv = Activitv. finddint) Sactivitvtd)•} else {Cactivitv = Activity.- whenp & colulif (! Sactivity) {Sthis->error( string: "Activity with ID/UUID {SactivityId} not found");Sthis->info( string: "Found activity ID: {Sactivity->getIdO}. UUID: {Sactivity->qetUuid@sth1s->intol su'Sending activity for ES update...'):Sthis->eventDispatcher->dispatchdnew UodateSinaleEntitvoentitvid: Sactivity->oetidoSthis->infod strina: "Done.")catch Excention Se)4$this->error( string: 'Failed to update ES: '. $e->getMessageO):cthic-sonnon/Co-saotTnaco/cCtninaon•= custom.logscratch &.isonA SF jiminny@localhost]A console (EU]tiò teams [EU]tii crm_configurations [EU]ImporbotkecoraingJoo.ongxOAcuvicy.ongclass 1прortborkecoraingJod excenas Jod Implements shoulauueuepublic function handle(RecallAIService SrecallAIService): voidSDor = SrecaLLALservice-›recrlevebor(schis-›acclvicy-›gecexcernaclaoif (empty(Sbot['recordings'])) {'activitvuuld' => Sthis->actzvity->getUu1dolactivitvio => sths->activity->oetidoif (Sthis->attemotso < Sthis->tries) <Sthis->released delav: self::RETRY SECONDS)} else 1$this->activity->update(['status' => Activity::STATUS_FAILED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,Sthic-sfailo•recurnStrack = Sthis->createVideoTrack(Sbot['video_url']):Sthis->createAudioTrack(Strack)onsoatchnew ImoortRecallAiRecordanas.o0irecordinas: Shot'recordinas']team: sthis->activity->getteam@l1 usagennivate function croateVidenTrackOstring Svideolini)• TrackneturnSthis-sactivitv->tnacks@->undatefntnpated'telephony_provider_id' => Sthis->activity->getMeetingTrackProviderId( type: Track::TYPE_VIDEO)100% L2• Wed 13 May 18:37:18AskJiminnyReportActivityServiceTest v& console [PROD)]CascadeA console [STAGING]r Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1ATnougntror 4ssearched conterenceralledeventin appThouaht for 2s >Read MeetingBotService.php #L540-589Read CreateBot.oho #L115-144|Read BotStatusChangeHandler.lob.ohv >Read BotStatusChangeHandlerJob.php #L410-459Searched status *=*STATUS FAILED in aoo/Services/RecallAIlThought for 1s >Read ImoortBotRecording.lob.nhn #| 50-99Inought for isBased on my search, the code location where a conference activity can have status='failed' but recording state='recorded' is/app/Services/RecallAI/Jobs/ImportBotRecordingJob.php (line 59)• pho'recording reason_code' = Activity::FLAG_RECORDING REASON_MEETING BOT_UNKNOWN,The slow.1. Recordina is captured and marked as recorded)•In MeetinaBotServilce.oho line 739, onRecordinoStoopedo sets recording state to Activity::RECORDING REGORDED• This happens when the meeting ends and recordina stoos successfullv2 Later recordina imnort fails.• In ImportBotRecordingJob.php, when fetching the bot recording fails after max retries (line 59)•Status is set to STATUS FAILED• RUT recordina state is NOT undated - it remains as 'recorded!Result: Activity has status='failed' (because import failed) but recording state='recorded' (because recording wascantured before the import failure)This is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status ancrecordina state are set togetherr.al .Ask anvthina (84L)« CodeSWE-16WN Windsurf Teamo64-14UTE.8io 4 spaces...
|
NULL
|
2329891872902650533
|
NULL
|
click
|
ocr
|
NULL
|
PhostormINavigarecodeFV faVsco.jsReso vers© TextRe PhostormINavigarecodeFV faVsco.jsReso vers© TextRelayService.phg?Draitsossocontroller.ongValidatorsC) BatchCriteria,oholellowweesage.phg© SmsLength.php1BatchCriterialnterface.oC)BatchService.oho© BatchServicelnterface.p © UpdateElasticSearch.phc(C) UpdateActivityElasticSearchDocumentCommand.php x C)UpdateSinqleEntity.php© ActivityStatusin.phpCSmailActivitvService.omtHristova 11class UodateActivitvElasticSearchDocumentCommand extends Command0 SmailActivitvServicelnte(C) EmailMessage.ohnpublic function handle(): void© EmailMessageinterface. 9.11.23C) InboyService.ohn© InboxServicelnterface.p(1 InternetMeccagelnterfal© MailChannelService.phpTextkelayselwice.ong› C MeetingGenerator0 Notification(7 OAuth2D Recallal> Actions>_ CommandsVUJOOS© CreateBot.Job.phpDeleteBot.Job.php© ImportBotRecording-RemoveBotFromCall!© SendAudioNotificatic 9.11.23 HristovaC) SendchatMessagec 18.00.25 vasilev@ StartRecordina.Job.nC StooRecordina.0b.om Webhooks(C) DatadoaMetricsServiceC) RecallA|Service.ohn(C) ScreenShareService.ohSecurityD Strategym StreamingD Team18.06.25 VasilevM Telenhonvc) clientlokengenerator.p© InsightsService.phpc) NumberAllocator.pnpc)lextmessagingservice..011.22 Hrictova 57c) wilioclient.ohocwilloclientBullder.ono011.22 Hrictova© TwilioService.php© TwilioSubAccountCreat> M UserPilot• WebhookC. AbstractService.ohdC) ActivitvProviderFactorv.onSactivityld = $this-›argument( key: 'activityid'):$this->info( string: "Searching for activity with: {Sactivityld}");if (is_numeric(Sactivityld)) 1Cactivitv = Activitv. finddint) Sactivitvtd)•} else {Cactivitv = Activity.- whenp & colulif (! Sactivity) {Sthis->error( string: "Activity with ID/UUID {SactivityId} not found");Sthis->info( string: "Found activity ID: {Sactivity->getIdO}. UUID: {Sactivity->qetUuid@sth1s->intol su'Sending activity for ES update...'):Sthis->eventDispatcher->dispatchdnew UodateSinaleEntitvoentitvid: Sactivity->oetidoSthis->infod strina: "Done.")catch Excention Se)4$this->error( string: 'Failed to update ES: '. $e->getMessageO):cthic-sonnon/Co-saotTnaco/cCtninaon•= custom.logscratch &.isonA SF jiminny@localhost]A console (EU]tiò teams [EU]tii crm_configurations [EU]ImporbotkecoraingJoo.ongxOAcuvicy.ongclass 1прortborkecoraingJod excenas Jod Implements shoulauueuepublic function handle(RecallAIService SrecallAIService): voidSDor = SrecaLLALservice-›recrlevebor(schis-›acclvicy-›gecexcernaclaoif (empty(Sbot['recordings'])) {'activitvuuld' => Sthis->actzvity->getUu1dolactivitvio => sths->activity->oetidoif (Sthis->attemotso < Sthis->tries) <Sthis->released delav: self::RETRY SECONDS)} else 1$this->activity->update(['status' => Activity::STATUS_FAILED,'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,Sthic-sfailo•recurnStrack = Sthis->createVideoTrack(Sbot['video_url']):Sthis->createAudioTrack(Strack)onsoatchnew ImoortRecallAiRecordanas.o0irecordinas: Shot'recordinas']team: sthis->activity->getteam@l1 usagennivate function croateVidenTrackOstring Svideolini)• TrackneturnSthis-sactivitv->tnacks@->undatefntnpated'telephony_provider_id' => Sthis->activity->getMeetingTrackProviderId( type: Track::TYPE_VIDEO)100% L2• Wed 13 May 18:37:18AskJiminnyReportActivityServiceTest v& console [PROD)]CascadeA console [STAGING]r Role SelecRetactoring User EmaDashboard Activity DeNew CascadeActivity Status vs Rec+0 ..A1ATnougntror 4ssearched conterenceralledeventin appThouaht for 2s >Read MeetingBotService.php #L540-589Read CreateBot.oho #L115-144|Read BotStatusChangeHandler.lob.ohv >Read BotStatusChangeHandlerJob.php #L410-459Searched status *=*STATUS FAILED in aoo/Services/RecallAIlThought for 1s >Read ImoortBotRecording.lob.nhn #| 50-99Inought for isBased on my search, the code location where a conference activity can have status='failed' but recording state='recorded' is/app/Services/RecallAI/Jobs/ImportBotRecordingJob.php (line 59)• pho'recording reason_code' = Activity::FLAG_RECORDING REASON_MEETING BOT_UNKNOWN,The slow.1. Recordina is captured and marked as recorded)•In MeetinaBotServilce.oho line 739, onRecordinoStoopedo sets recording state to Activity::RECORDING REGORDED• This happens when the meeting ends and recordina stoos successfullv2 Later recordina imnort fails.• In ImportBotRecordingJob.php, when fetching the bot recording fails after max retries (line 59)•Status is set to STATUS FAILED• RUT recordina state is NOT undated - it remains as 'recorded!Result: Activity has status='failed' (because import failed) but recording state='recorded' (because recording wascantured before the import failure)This is different from other failure scenarios in Meet ingBotService.php (lines 481, 878) where both status ancrecordina state are set togetherr.al .Ask anvthina (84L)« CodeSWE-16WN Windsurf Teamo64-14UTE.8io 4 spaces...
|
37084
|
NULL
|
NULL
|
NULL
|
|
37085
|
1385
|
18
|
2026-05-13T15:37:18.405519+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686638405_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:37:17DOCKER• ₴1DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"885ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
NULL
|
-5636256928094689843
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2Shell EditViewSessionScriptsProfilesWindowHe iTerm2Shell EditViewSessionScriptsProfilesWindowHelpA100% <8• Wed 13 May 18:37:17DOCKER• ₴1DEV (docker)₴2APP (-zsh)83ec2-user@ip-10-20-31-146:~-zsh|84screenpipe"885ec2-user@ip-10-30-129-...ec2-user@ip-10-20-31-14... #7[2026-05-13 15:28:23Jproduction.INFO:[SocialAccountService] Fetching"trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}token {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Token needs refreshing {"socialAccountId":30110, "provider": "hubspot"} {"correlation_id": "ed1a364d-0b07-4c47-95a7-d22fd&ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-13 15:28:23] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec"fef6-427a-4e63-a9ba-b340103c976b"},"trace_id" :"1a72[2026-05-13 15:28:23] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot", "refreshToken" : "9417a6a067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c", "state": "full-refresh"} {"correlation_id":"edla364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id": "1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23Jproduction.ERROR: [SocialAccountService] Failedto refresh token {"socialAccountId" :30110, "provider" : "hubspot",,"responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-1184-72ca-8C79-d9e09814baa4\", \"error)":\"access_denied\", \"error_description)":\"missing or unknown hub idl"}"3 {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec", "trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}[2026-05-1315:28:23] production.INF0: [SocialAccountObserver] Saving model {"correlation_id":"ed1a364d-0b07-4c47-95a7-d22fd8ef6bec","trace_id":"1a72fef6-427a-4e63-a9ba-b340103c976b"}Flow refresh required.root@453da0675541:/home/jiminny# php artisan jiminny:token-info -A 30110-R[2026-05-13 15:28:31] production.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "jiminny:token-info"."memoryBeforeCommandInMb" :116.0,"memoryPeakBeforeCommandInMb":116.0} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Fetching token {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"b1e2505a-8c60-4607-a96a-a33209efd4c4, "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INF0: [SocialAccountService]Token needs refreshing {"socialAccountId":30110,"provider": "hubspot"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:31] production.INFO: [EncryptedTokenManager] Generating access token. {"mode":"legacy"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4"9c48-df0f-4111-9988-d3bb8bf7bfa8"}"trace_id":"001e[2026-05-13 15:28:31] production.INFO: [SocialAccountService] Refreshing token from provider {"socialAccountId":30110, "provider": "hubspot","refreshToken": "9417aбa067cd68efa0bd023e970cc27482ef7db27b876a4383f5a246c4e8d81c","state": "full-refresh"} {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4".',"trace_id":"001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.ERROR: [SocialAccountService] Failed to refresh token {"socialAccountId":30110, "provider": "hubspot","responseBody":"{\"status\":\"BAD_HUB\", \"message\":\"missing or unknown hub id\",\"correlationId\":\"019e21f4-319c-7501-8b0e-d3118c6534f8\".,\"error)":\"access_denied\", \"error_description)":\"missing or unknown hub id\"}"}"correlation_id": "b1e2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8"}[2026-05-13 15:28:32] production.INFO: [SocialAccountObserver] Saving model {"correlation_id":"ble2505a-8c60-4607-a96a-a33209efd4c4", "trace_id": "001e9c48-df0f-4111-9988-d3bb8bf7bfa8'"}Flow refresh required.root@453da0675541:/home/jiminny# [ec2-user@ip-10-20-31-146 ~]$ 0...
|
37083
|
NULL
|
NULL
|
NULL
|
|
37084
|
1386
|
31
|
2026-05-13T15:36:54.854876+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686614854_m2.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.040226065,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8081782,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"bounds":{"left":0.8234708,"top":0.019952115,"width":0.09208777,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"bounds":{"left":0.38430852,"top":0.19952115,"width":0.0076462766,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.39361703,"top":0.19792499,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.40093085,"top":0.19792499,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"bounds":{"left":0.1619016,"top":0.0,"width":0.31981382,"height":1.0},"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.71476066,"top":0.10055866,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.7237367,"top":0.09896249,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.73105055,"top":0.09896249,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
37083
|
1385
|
17
|
2026-05-13T15:36:53.117408+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778686613117_m1.jpg...
|
PhpStorm
|
faVsco.js – ImportBotRecordingJob.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"master, menu","depth":5,"on_screen":true,"help_text":"Git Branch: master<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskJiminnyReportActivityServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskJiminnyReportActivityServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"7","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Console\\Commands\\Activities;\n\nuse Illuminate\\Console\\Command;\nuse Illuminate\\Contracts\\Events\\Dispatcher;\nuse Jiminny\\Contracts\\ES\\Events\\UpdateSingleEntity;\nuse Jiminny\\Contracts\\ES\\UpdateTargetEnum;\nuse Jiminny\\Models\\Activity;\n\nclass UpdateActivityElasticSearchDocumentCommand extends Command\n{\n protected $signature = 'activity:update:es {activityId}';\n protected $description = 'Update ES document synchronously';\n\n public function __construct(private readonly Dispatcher $eventDispatcher)\n {\n parent::__construct();\n }\n\n public function handle(): void\n {\n $activityId = $this->argument('activityId');\n\n $this->info(\"Searching for activity with: {$activityId}\");\n\n if (is_numeric($activityId)) {\n $activity = Activity::find((int) $activityId);\n } else {\n $activity = Activity::where('uuid', \\Jiminny\\Traits\\RequiresUUID::toOptimized($activityId))->first();\n }\n\n if (! $activity) {\n $this->error(\"Activity with ID/UUID {$activityId} not found\");\n\n return;\n }\n\n $this->info(\"Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}\");\n $this->info('Sending activity for ES update...');\n\n try {\n $this->eventDispatcher->dispatch(\n new UpdateSingleEntity(\n entityId: $activity->getId(),\n updateTarget: UpdateTargetEnum::ACTIVITY,\n purpose: 'cli-command-activity-update-es',\n isSyncEvent: true,\n )\n );\n\n $this->info('Done.');\n } catch (\\Exception $e) {\n $this->error('Failed to update ES: ' . $e->getMessage());\n $this->error($e->getTraceAsString());\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\nnamespace Jiminny\\Services\\RecallAI\\Jobs;\n\nuse Illuminate\\Support\\Facades\\Log;\nuse Jiminny\\Component\\Queue;\nuse Jiminny\\Jobs\\ImportRecallAIRecordingsJob;\nuse Illuminate\\Queue\\InteractsWithQueue;\nuse Illuminate\\Queue\\SerializesModels;\nuse Illuminate\\Contracts\\Queue\\ShouldQueue;\nuse Jiminny\\Models\\Activity;\nuse Jiminny\\Models\\Track;\nuse Jiminny\\Jobs\\Job;\nuse Jiminny\\Services\\RecallAI\\RecallAIService;\n\nclass ImportBotRecordingJob extends Job implements ShouldQueue\n{\n use InteractsWithQueue;\n use SerializesModels;\n\n private const int RETRY_SECONDS = 120;\n\n public int $tries = 2;\n\n public $queue = Queue\\BotsQueueConstants::BOTS_IMPORT_TRACKS;\n\n public function __construct(private readonly Activity $activity)\n {\n }\n\n /**\n * Import video tracks from Recall.ai to client-data S3 bucket\n */\n public function handle(RecallAIService $recallAIService): void\n {\n Log::info(\n '[MeetingBot] ImportTracks: START Importing tracks for activity: '\n . $this->activity->getUuid(),\n [\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n $bot = $recallAIService->retrieveBot($this->activity->getExternalId());\n\n if (empty($bot['recordings'])) {\n Log::error(\n '[MeetingBot] ImportTracks: Recordings not found, retrying',\n [\n 'activityUuid' => $this->activity->getUuid(),\n 'activityID' => $this->activity->getId(),\n ]\n );\n\n if ($this->attempts() < $this->tries) {\n $this->release(self::RETRY_SECONDS);\n } else {\n $this->activity->update([\n 'status' => Activity::STATUS_FAILED,\n 'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,\n ]);\n\n $this->fail();\n }\n\n return;\n }\n\n $track = $this->createVideoTrack($bot['video_url']);\n\n $this->createAudioTrack($track);\n\n dispatch(\n new ImportRecallAIRecordingsJob(\n recordings: $bot['recordings'],\n track: $track,\n team: $this->activity->getTeam()\n )\n );\n }\n\n private function createVideoTrack(?string $videoUrl): Track\n {\n return $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),\n ],\n [\n 'type' => Track::TYPE_VIDEO,\n 'is_master' => 0,\n 'is_shadow' => 0,\n 'status' => Track::STATUS_PENDING,\n 'format' => Track::FORMAT_MP4,\n 'start_time' => $this->activity->getActualStartTime(),\n 'end_time' => $this->activity->getActualEndTime(),\n 'provider_content_url' => $videoUrl,\n ]\n );\n }\n\n private function createAudioTrack(Track $videoTrack): void\n {\n $this->activity->tracks()->updateOrCreate(\n [\n 'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),\n ],\n [\n 'type' => Track::TYPE_AUDIO,\n 'is_master' => $videoTrack->getIsMaster(),\n 'is_shadow' => 1,\n 'start_time' => $videoTrack->getStartTime(),\n 'end_time' => $videoTrack->getEndTime(),\n 'format' => $videoTrack->getFormat(),\n 'status' => Track::STATUS_PENDING,\n ]\n );\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
841011344360644178
|
-3989588489578378452
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
master, menu
Start Listen Project: faVsco.js, menu
master, menu
Start Listening for PHP Debug Connections
AskJiminnyReportActivityServiceTest
Run 'AskJiminnyReportActivityServiceTest'
Debug 'AskJiminnyReportActivityServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Code changed:
Hide
Sync Changes
Hide This Notification
7
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Console\Commands\Activities;
use Illuminate\Console\Command;
use Illuminate\Contracts\Events\Dispatcher;
use Jiminny\Contracts\ES\Events\UpdateSingleEntity;
use Jiminny\Contracts\ES\UpdateTargetEnum;
use Jiminny\Models\Activity;
class UpdateActivityElasticSearchDocumentCommand extends Command
{
protected $signature = 'activity:update:es {activityId}';
protected $description = 'Update ES document synchronously';
public function __construct(private readonly Dispatcher $eventDispatcher)
{
parent::__construct();
}
public function handle(): void
{
$activityId = $this->argument('activityId');
$this->info("Searching for activity with: {$activityId}");
if (is_numeric($activityId)) {
$activity = Activity::find((int) $activityId);
} else {
$activity = Activity::where('uuid', \Jiminny\Traits\RequiresUUID::toOptimized($activityId))->first();
}
if (! $activity) {
$this->error("Activity with ID/UUID {$activityId} not found");
return;
}
$this->info("Found activity ID: {$activity->getId()}, UUID: {$activity->getUuid()}");
$this->info('Sending activity for ES update...');
try {
$this->eventDispatcher->dispatch(
new UpdateSingleEntity(
entityId: $activity->getId(),
updateTarget: UpdateTargetEnum::ACTIVITY,
purpose: 'cli-command-activity-update-es',
isSyncEvent: true,
)
);
$this->info('Done.');
} catch (\Exception $e) {
$this->error('Failed to update ES: ' . $e->getMessage());
$this->error($e->getTraceAsString());
}
}
}
Code changed:
Hide
Sync Changes
Hide This Notification
1
Previous Highlighted Error
Next Highlighted Error
<?php
namespace Jiminny\Services\RecallAI\Jobs;
use Illuminate\Support\Facades\Log;
use Jiminny\Component\Queue;
use Jiminny\Jobs\ImportRecallAIRecordingsJob;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Jiminny\Models\Activity;
use Jiminny\Models\Track;
use Jiminny\Jobs\Job;
use Jiminny\Services\RecallAI\RecallAIService;
class ImportBotRecordingJob extends Job implements ShouldQueue
{
use InteractsWithQueue;
use SerializesModels;
private const int RETRY_SECONDS = 120;
public int $tries = 2;
public $queue = Queue\BotsQueueConstants::BOTS_IMPORT_TRACKS;
public function __construct(private readonly Activity $activity)
{
}
/**
* Import video tracks from Recall.ai to client-data S3 bucket
*/
public function handle(RecallAIService $recallAIService): void
{
Log::info(
'[MeetingBot] ImportTracks: START Importing tracks for activity: '
. $this->activity->getUuid(),
[
'activityID' => $this->activity->getId(),
]
);
$bot = $recallAIService->retrieveBot($this->activity->getExternalId());
if (empty($bot['recordings'])) {
Log::error(
'[MeetingBot] ImportTracks: Recordings not found, retrying',
[
'activityUuid' => $this->activity->getUuid(),
'activityID' => $this->activity->getId(),
]
);
if ($this->attempts() < $this->tries) {
$this->release(self::RETRY_SECONDS);
} else {
$this->activity->update([
'status' => Activity::STATUS_FAILED,
'recording_reason_code' => Activity::FLAG_RECORDING_REASON_MEETING_BOT_UNKNOWN,
]);
$this->fail();
}
return;
}
$track = $this->createVideoTrack($bot['video_url']);
$this->createAudioTrack($track);
dispatch(
new ImportRecallAIRecordingsJob(
recordings: $bot['recordings'],
track: $track,
team: $this->activity->getTeam()
)
);
}
private function createVideoTrack(?string $videoUrl): Track
{
return $this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_VIDEO),
],
[
'type' => Track::TYPE_VIDEO,
'is_master' => 0,
'is_shadow' => 0,
'status' => Track::STATUS_PENDING,
'format' => Track::FORMAT_MP4,
'start_time' => $this->activity->getActualStartTime(),
'end_time' => $this->activity->getActualEndTime(),
'provider_content_url' => $videoUrl,
]
);
}
private function createAudioTrack(Track $videoTrack): void
{
$this->activity->tracks()->updateOrCreate(
[
'telephony_provider_id' => $this->activity->getMeetingTrackProviderId(Track::TYPE_AUDIO),
],
[
'type' => Track::TYPE_AUDIO,
'is_master' => $videoTrack->getIsMaster(),
'is_shadow' => 1,
'start_time' => $videoTrack->getStartTime(),
'end_time' => $videoTrack->getEndTime(),
'format' => $videoTrack->getFormat(),
'status' => Track::STATUS_PENDING,
]
);
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|