|
10742
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 4 m100% CTue 14 Apr 11:56:38ec2-user@ip-10-30-93-249:~DOCKER• 8812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth":false, "currentMonth":4, "isQuarterlyMonth":true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453e6c4054", "teamId":1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f''}root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10742
|
|
10743
|
PhpStormFileFditViewNavigateCodelaraveRefactonTool PhpStormFileFditViewNavigateCodelaraveRefactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v© DeviceRepository.phpC ElasticActivityRepository.p© EmailMessageRepository.p© GenericAiPromptRepositor© GroupRepository.php(C InboxEmailBatchRepositor)C InboxRepository.pnp© InvitationRepository.php(C) JobRepository.phpC) LanquageRepository.php© MomentRepository.phpNotificationRepository.phpC) ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.phpC PlavlistActivityRepository.p(© PlaylistRepository.png(C PlaylistShareRepository.phC) QuestionRepository.phpC) RoleChangeEventRepositolC RoleRepository.php© SearchRepository.phpC SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.(C) TaskRepository.phoC TeamAiContextRepository.C TeamDomainsRepository.p(©) TeaminsightsRepository.phC) TeamRepository.phpC ThemeRepository.phpC TimezoneRepository.php© TopicRepository.php© TоpicTriggerRepository.ph© TrackRepository.phpC) TranscriptionModelLocaleF© TranscriptionRepository.prC) TranscriptionSummarvRepC UserRepository.php© VocabularyRepository.pnp> _ Rulesv D Services>D Activity>D AReportsAvatarcalendarM ConferenceM Crm>MImport> MInternallv → Kioskv _ AutomatedReports(C) ActivityTypeService.(©) AskJiminnyReportAc(C) AutomatedReportse(C) AutomatedReportsSc) ReportController.onpJiminnyDeouecommana.ongAutomaleakeporssenacommana.ongC AutomatedReportsCommand.phpC AddLayoutEntities.phpC Team.phpC AutomatedReportsRepository.pnp© AutomatedReportsService.phpCreateHeldActivityEvent.phpe) Track?roviderinstalled-vent.onoCrealencuivityLoggeaeventoneC ActivityLogged.phpC AutomatedReportsCallbackService.phpC RequestGenerateAskJiminnyReportJob.php xRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJ1minnyReportJob 1mplements ShouldQueue, ShouLdBeUnique oMS^8182831100101102103104105106ML0/I1081091110111112113114115116public function handlel1):Tecurtinssavedsearcn = pautomatedkeport->gecsavedsearcnohif (SsavedSearch === null) &+Logger->warninglselt..Luo_PkErLX'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1):lecurisprompt = sautomatedReport->getAskAnythingPromptor1T (sprompt === nULU) 1s Logger->warninglselt::Lub_PRErIX •' SKipped, ask anyuhing prompt not round.'aucomatedkeporcuuld = suhis->reporcuuld,recurn,$this->reportResult = SreportService->createReportResult(automatedReport: sautomatedReport,data: L'status' => AutomatedReportresult::STATUS_DEFAULT,"med1a_type => Aucomatedkeporcsservice:.REULA_TYPE_PUr,SactivitvIds = SactivitvService->getActivitvIdsForSavedSearch0savedSearch: $savedSearch,usel. peredtor,):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', ['automatedReportuuld' => sthis->reportuuld,activitycount = count(sactivitylas),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {Sthis->failReport@ reason: AutomatedReportResult::REASON_NOT ENOUGH ACTIVTTIES):$Logger->info(self::LOG_PREFIXNot enough activities, skipped', l'automatedReportUuid' => $this->reportUuid,'activityCount" => count(Sactivitylds),1);PecurtldWinasurt changelog 2.12.21: A new version is avallable. |/ View Changelog (today 10:33)= custom.log= laravel.logL SF (iminny@localhost≤ HS_local fiminny@localhost)console PRODL console [EUlconsole SlAGiNG© AsKJiminnyReportActivityService.php xC RequestGenerateAskJiminnyReportJobTest.php2201 AYclass AskJLminnyкeporcActIviLyservice25293132333436L-5%59private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ACu1VItyAccuaLbate::PARAM_END_DAIE,Acu1vityupaacedbace::PARAM_UPDATEU_FRUN,Aculvityupdaceduace:.PARAN_UPDATEU_TU,closingrertoarttter..ner_orAKl_bAlE,Losinorertoortuter.acr eNu DAnspublic function -_construct(private readonly ActivitySearch Sactivitysearchprivate readonly ElasticActivityRepository selasticrepository,private readonly Loggerinterface slogger,) 1...3/*** Fetch activity IDs for a saved search, passing its filters as-is to Cri* Date filters stored on the saved search are excluded; if no other filte* no date constraint is applied - matching the behaviour of getContextFo.* dreturn stringl Activity IDs*/public function getActivityldsForSavedsearchSearch SsavedSearch,User suser,"array1prequestrarans = stns-2outLaked Botraranstromsearchlssaveasearen, suScriteria = Criteria::createFromReauest(array merge(SrequestParams, ['limit' => self::DEFAULT_TOP ACTIVITIsuser->getTimezoneo):sfilterset = sthis->activitysearch->getonbemandPager1lterset(scritersactivitylds = sthis->elast1cRepository->onDemandSearchldsonly(suser$this->logger->info('[AskJiminnyReport] Fetched activity IDs for savecsaveo searchto = osaveosearch->cetlo."user 1o=> Suser->getia).'activity_count' => count($activityIds),I);return Sactivityids:private function bu1ldRequestParamsFromsearch(Search ssavedsearch, User $Support Daily • in 3h 4 m100% |45]Tue 14 Apr 11:56:38RequestGenerateAskJiminnyReportJobTest vCascadeFixing ReportControlle• Automated Report N© Automated Report !3. Activity fetch — [AskJiminnyReport] (from AskJiminnyReportActivityService)[AskJiminnyReport] Fetched activity IDs for saved searchSavea search lo user lo aculvity countunen immealalely aner in tne od[AskJiminnyReport:Generatel Fetched activity IDsautomatedReportUuid, activityCount4a. Failure path (< 1 activity):LAskJiminnyReport:Generatel Not enough activities, skippecautomatedReportuuid, activitycountThe AutomatedReportResult gets status=failed, reason=REASON_NOT_ENOUGH_ACTIVITLES.4b. Error path (exception):AskJiminnyReport:Generatel ErrorautomatedReportUuid, reportUuid, code, messageWhat's missing for debuggingThe logs tell you count but not which filters were applied from the saved search. When a report fails with 0activities, you can't see why - what the saved search filters were, what date range was used, or what requestParams were bulltTwo gaps:1. AskJiminnyReportActivityService-the requestParams built trom the saved search are not logged (only acalvity count2. RequestGenerateAskJiminnyReportJob - payload is only logged at "Request sent" (line 132-156), wnich isafter the activity count gate — so if we fail at count check, we never see the payloadI can add logaina to expose the applied filters and the actual activity IDs when the count is low. Want me to addthatAskino •uestion• What would you like to improve?WWhat would you like to improve?Loo tne aoolee Tters recuestrarams)rrom the saveo searchAdd filter params to the existing log in AskJiminnyReportActivityService so you can see exactly what filters wereusea wnen u acuvilles are returneeLog actual activity IDs when count is lowAlso log the activity IDs themselves (not just the count) so you can inspect which specific calls were or weren'tInc ludedbothLog tilters + activity IDs in AskJiminnyReportActivityServiceother ancwer+ <> CodeClaude Sennet 4.6SkipW Winasunt leams44:2uir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10743
|
|
10744
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 4 m100% CTue 14 Apr 11:56:40ec2-user@ip-10-30-93-249:~DOCKER9812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth":false, "currentMonth":4, "isQuarterlyMonth":true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453e6c4054", "teamId":1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f''}root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10744
|
|
10745
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 4 m100% CTue 14 Apr 11:56:42ec2-user@ip-10-30-93-249:~DOCKER9812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth":false, "currentMonth":4, "isQuarterlyMonth":true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453e6c4054", "teamId":1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f''}root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10745
|
|
10746
|
PhpStormFileFditViewNavigateCodelaraveRefactonTool PhpStormFileFditViewNavigateCodelaraveRefactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v© DeviceRepository.phpC ElasticActivityRepository.p© EmailMessageRepository.p© GenericAiPromptRepositor© GroupRepository.php(C InboxEmailBatchRepositor)C InboxRepository.pnp© InvitationRepository.php(C) JobRepository.phpC) LanquageRepository.php© MomentRepository.phpNotificationRepository.phpC) ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.phpC PlavlistActivityRepository.p(© PlaylistRepository.png(C PlaylistShareRepository.phC) QuestionRepository.phpC) RoleChangeEventRepositolC RoleRepository.php© SearchRepository.phpC SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.(C) TaskRepository.phoC TeamAiContextRepository.C TeamDomainsRepository.p(©) TeaminsightsRepository.phC) TeamRepository.phpC ThemeRepository.phpC TimezoneRepository.php© TopicRepository.php© TоpicTriggerRepository.ph© TrackRepository.phpC) TranscriptionModelLocaleF© TranscriptionRepository.prC) TranscriptionSummarvRepC UserRepository.php© VocabularyRepository.pnp> _ Rulesv D Services>D Activity>D AReportsAvatarcalendarM ConferenceM Crm>MImport> MInternallv → Kioskv _ AutomatedReports(C) ActivityTypeService.(©) AskJiminnyReportAc(C) AutomatedReportse(C) AutomatedReportsSc) ReportController.onpJiminnyDeouecommana.ongAutomaleakeporssenacommana.ongC AutomatedReportsCommand.phpC AddLayoutEntities.phpC Team.phpC AutomatedReportsRepository.pnp© AutomatedReportsService.phpCreateHeldActivityEvent.phpe) Track?roviderinstalled-vent.onoCrealencuivityLoggeaeventoneC ActivityLogged.phpC AutomatedReportsCallbackService.phpC RequestGenerateAskJiminnyReportJob.php xRequestGeneratekeportJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJ1minnyReportJob 1mplements ShouldQueue, ShouLdBeUnique oMS^8182831100101102103104105106ML0/I1081091110111112113114115116public function handlel1):Tecurtinssavedsearcn = pautomatedkeport->gecsavedsearcnohif (SsavedSearch === null) &+Logger->warninglselt..Luo_PkErLX'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1):lecurisprompt = sautomatedReport->getAskAnyth1ngPromptO:1T (sprompt === nULU) 1s Logger->warninglselt::Lub_PRErIX •' SKipped, ask anyuhing prompt not round.'aucomatedkeporcuuld = suhis->reporcuuld,recurn,$this->reportResult = SreportService->createReportResult(automatedReport: sautomatedReport,data: L'status' => AutomatedReportresult::STATUS_DEFAULT,"medla_type => Automacedkeporcsservice:.REULA_TYPE_PUr.SactivitvIds = SactivitvService->getActivitvIdsForSavedSearch0savedSearch: $savedSearch,usel. peredtor,):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', ['automatedReportuuld' => sth1s->reportuuld,activitycount = count(sactivitylas),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {Sthis->failReport@ reason: AutomatedReportResult::REASON_NOT ENOUGH ACTIVTTIES):$Logger->info(self::LOG_PREFIXNot enough activities, skipped', l'automatedReportUuid' => $this->reportUuid,'activityCount" => count(Sactivitylds),1);PecurtldWinasurt changelog 2.12.21: A new version is avallable. l View Changelog (today 10:35)= custom.log= laravel.logL SF (iminny@localhost« HS_local fiminny@localhostconsole PRODL console [EUlconsole SlAGiNG© AsKJiminnyReportActivityService.php x© RequestGenerateAskJiminnyReportJobTest.phpX221 ^ vclass AskJLminnyкeporcActIviLyservice25293132333436private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ACu1VItyAccuaLbate::PARAM_END_DAIE,Acu1vityupaacedbace: :PARAM_UPDATEU_FRUN,Aculvityupdaceduace:.PARAN_UPDATEU_TU,closingrertoarttter..ner_orAKl_bAlE,Losinorertoortuter.acr eNu DAnspublic function -_construct(private readonly ActivitySearch Sactivitysearchprivate readonly ElasticActivityRepository selasticrepository,private readonly Loggerinterface slogger,) 1...3/*** Fetch activity IDs for a saved search, passing its filters as-is to Cri* Date filters stored on the saved search are excluded; if no other filte* no date constraint is applied - matching the behaviour of getContextFo.* dreturn stringl Activity IDs*/public function getActivityldsForsavedsearchSearch Ssavedsearch,User suser.Cascade 2 LlCommand 42"array1$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $uScriteria = Criteria::createFromRequest(array_merge($requestParams, L'Limg' => self::DEFAULT_TOP ACTIVITISuser->getTimezoneosfilterset = sthis->activitysearch->getonbemandPager1lterset(scritersactivitylds = sthis->elast1cRepos1tory->onDemandSearchldsonly(susern$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved"saveo search 10'=saveosearch->cer10."user 1o=> Suser->qetIdol'activity_count' => count($activityIds),I);return Sactivityids:private function bu1ldRequestParamsFromsearch(Search ssavedSearch, UserSupport Daily • in 3h 4 m100% |45]Tue 14 Apr 11:56:42RequestGenerateAskJiminnyReportJobTest vCascadeFixing ReportControlle• Automated Report N© Automated Report !3. Activity fetch — [AskJiminnyReport] (from AskJiminnyReportActivityService)[AskJiminnyReport] Fetched activity IDs for saved searchSavea search lo user lo aculvity countunen immealalely aner in tne od[AskJiminnyReport:Generatel Fetched activity IDsautomatedReportUuid, activityCount4a. Failure path (< 1 activity):LAskJiminnyReport:Generatel Not enough activities, skippecautomatedReportuuid, activitycountThe AutomatedReportResult gets status=failed, reason=REASON_NOT_ENOUGH_ACTIVITLES.4b. Error path (exception):AskJiminnyReport:Generatel ErrorautomatedReportUuid, reportUuid, code, messageWhat's missing for debuggingThe logs tell you count but not which filters were applied from the saved search. When a report fails with 0activities, you can't see why - what the saved search filters were, what date range was used, or what requestParams were bulltTwo gaps:1. AskJiminnyReportActivityService-the requestParams built trom the saved search are not logged (only acalvity count2. RequestGenerateAskJiminnyReportJob - payload is only logged at "Request sent" (line 132-156), wnich isafter the activity count gate — so if we fail at count check, we never see the payloadI can add logaina to expose the applied filters and the actual activity IDs when the count is low. Want me to addthatAskino •uestion• What would you like to improve?WWhat would you like to improve?Loo tne aoolee Tters recuestrarams)rrom the saveo searchAdd filter params to the existing log in AskJiminnyReportActivityService so you can see exactly what filters wereusea wnen u acuvilles are returneeLog actual activity IDs when count is lowAlso log the activity IDs themselves (not just the count) so you can inspect which specific calls were or weren'tInc ludedbolLog tilters + activity IDs in AskJiminnyReportActivityServiceother ancwer+ <> CodeClaude Sennet 4.6Skipwinasun leams40:19 s charsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10746
|
|
10747
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 4 m100% CTue 14 Apr 11:56:48ec2-user@ip-10-30-93-249:~DOCKER• 8812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth":false, "currentMonth":4, "isQuarterlyMonth":true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453e6c4054", "teamId":1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f''}root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10747
|
|
10748
|
PhpStormFileFditViewNavigateCodelaraveRefactonTool PhpStormFileFditViewNavigateCodelaraveRefactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v© DeviceRepository.phpC ElasticActivityRepository.p© EmailMessageRepository.p© GenericAiPromptRepositor© GroupRepository.php(C InboxEmailBatchRepositor)C InboxRepository.pnp© InvitationRepository.php(C) JobRepository.phpC) LanquageRepository.php© MomentRepository.phpNotificationRepository.phpC) ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.phpC PlavlistActivityRepository.p(© PlaylistRepository.png(C PlaylistShareRepository.phC) QuestionRepository.phpC) RoleChangeEventRepositolC RoleRepository.php© SearchRepository.phpC SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.(C) TaskRepository.phoC TeamAiContextRepository.C TeamDomainsRepository.p(©) TeaminsightsRepository.phC) TeamRepository.phpC ThemeRepository.phpC TimezoneRepository.php© TopicRepository.php© TоpicTriggerRepository.ph© TrackRepository.phpC) TranscriptionModelLocaleF© TranscriptionRepository.prC) TranscriptionSummarvRepC UserRepository.php© VocabularyRepository.pnp> _ Rulesv D Services>D Activity>D AReportsAvatarcalendarM ConferenceM Crm>MImport> MInternallv → Kioskv _ AutomatedReports(C) ActivityTypeService.(©) AskJiminnyReportAc(C) AutomatedReportse(C) AutomatedReportsSc) ReportController.onpJiminnyDeouecommana.ongAutomaleakeporssenacommana.ongC AutomatedReportsCommand.phpC AddLayoutEntities.phpC Team.phpC AutomatedReportsRepository.pnp© AutomatedReportsService.phpCreateHeldActivityEvent.phpe) Track?roviderinstalled-vent.onoCrealenctivityLoggeaevent.oneC ActivityLogged.phpC AutomatedReportsCallbackService.phpC RequestGenerateAskJiminnyReportJob.php xRequestGeneratekeporJob.ong© AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJ1minnyReportJob 1mplements ShouldQueue, ShouLdBeUnique oMS^8182831100101102103104105106ML0/I1081091110111112113114115116public function handlel1):Tecurtinssavedsearcn = pautomatedkeport->gecsavedsearcnohif (SsavedSearch === null) &+Logger->warninglselt..Luo_PkErLX'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1):lecurisprompt = sautomatedReport->getAskAnythingPromptor1T (sprompt === nULU) 1s Logger->warninglselt::Lub_PRErIX •' SKipped, ask anyuhing prompt not round.'aucomatedkeporcuuld = suhis->reporcuuld,recurn,$this->reportResult = SreportService->createReportResult(automatedReport: sautomatedReport,data: L'status' => AutomatedReportresult::STATUS_DEFAULT,"med1a_type => Aucomatedkeporcsservice:.REULA_TYPE_PUr,SactivitvIds = SactivitvService->getActivitvIdsForSavedSearch0savedSearch: $savedSearch,usel. peredtor,):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', ['automatedReportuuld' => sthis->reportuuld,activitycount = count(sactivitylas),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {Sthis->failReport reason: AutomatedReportResult::REASON_ NOT ENOUGH ACTIVITIES):$Logger->info(self::LOG_PREFIXNot enough activities, skipped', l'automatedReportUuid' => $this->reportUuid,'activityCount" => count(Sactivitylds),1);PecurtldWinasurt changelog 2.12.21: A new version is avallable. |/ View Changelog (today 10:33)= custom.log= laravel.logL SF (iminny@localhost« HS_local fiminny@localhostconsole PROD< console LUiconsole SlAGiNG© AsKJiminnyReportActivityService.phpx© RequestGenerateAskJiminnyReportJobTest.phpX201 A Yclass AskJLminnyкeporcActIviLyservice252932333436private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ACu1VItyAccuaLbate::PARAM_END_DAIE,Acu1vityupaacedbace::PARAM_UPDATEU_FRUN,Aculvityupdaceduace:.PARAN_UPDATEU_TU,closingrertoarttter..ner_oraKi_bAlE,Losinorertoortuter.acr eNu DAnspublic function -_construct(private readonly ActivitySearch Sactivitysearchprivate readonly ElasticActivityRepository selasticrepository,private readonly Loggerinterface slogger,) 1...3/*** Fetch activity IDs for a saved search, passing its filters as-is to Cri* Date filters stored on the saved search are excluded; if no other filte* no date constraint is applied - matching the behaviour of getContextFor* dreturn stringl Activity IDs*/public function getActivityldsForsavedsearchSearch Ssavedsearch,User suser,"array1фrequescrarams = suhis->du1lakequescraramstromsearcnssavedsearch, susScriteria = Criteria::createFromReauest(array merge(SrequestParams, ['limit' => self::DEFAULT_TOP ACTIVITIsuser->getTimezoneosfilterset = sthis->activitysearch->getonbemandPager1lterset(scr1terasactivitylds = sthis->elast1cRepository->onDemandSearchldsonly(suser$this->logger->info('[AskJiminnyReport] Fetched activity IDs for savec"saveo search 10'=saveosearch->cer10."user Ton=> Suser->getia).'activity_count' => count($activityIds),I);return Sactivityids:private function bu1ldRequestParamsFromsearch(Search ssavedsearch, User $uSupport Daily • in 3h 4 m100% |45]Tue 14 Apr 11:56:48RequestGenerateAskJiminnyReportJobTest vCascadeFixing ReportControlle• Automated Report N© Automated Report !3. Activity fetch — [AskJiminnyReport] (from AskJiminnyReportActivityService)CascadeWi[AskJiminnyReport] Fetched activity IDs for saved searchSavea search lo user lo aculvity countunen immealalely aner in tne od[AskJiminnyReport:Generatel Fetched activity IDsautomatedReportUuid, activityCount4a. Failure path (< 1 activity):LAskJiminnyReport:Generatel Not enough activities, skippecautomatedReportuuid, activitycountThe AutomatedReportResult gets status=failed, reason=REASON_NOT_ENOUGH_ACTIVITLES.4b. Error path (exception):AskJiminnyReport:Generatel ErrorautomatedReportUuid, reportUuid, code, messageWhat's missing for debuggingThe logs tell you count but not which filters were applied from the saved search. When a report fails with 0activities, you can't see why - what the saved search filters were, what date range was used, or what requestParams were bulltTwo gaps:1. AskJiminnyReportActivityService-the requestParams built trom the saved search are not logged (only acalvity count2. RequestGenerateAskJiminnyReportJob - payload is only logged at "Request sent" (line 132-136), which isafter the activity count gate — so if we fail at count check, we never see the payloadI can add logaina to expose the applied filters and the actual activity IDs when the count is low. Want me to addthatAskino •uestion• What would you like to improve?What would you like to improve?Loo ne aoolee Ters recuestrarams. rrom the saveo searctAdd filter params to the existing log in AskJiminnyReportActivityService so you can see exactly what filters wereusea wnen u acuvilles are returneeLog actual activity IDs when count is lowAlso log the activity IDs themselves (not just the count) so you can inspect which specific calls were or weren'tInc ludedbolLog tilters + activity IDs in AskJiminnyReportActivityServiceother ancwer+ <> CodeClaude Sennet 4.6Skipwinasun leams50:41uir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10748
|
|
10749
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 4 m100% CTue 14 Apr 11:56:51ec2-user@ip-10-30-93-249:~DOCKER9812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453eбc4054", "teamId" :1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id" :"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"})root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10749
|
|
10750
|
PhpStormFileEditViewNavigateCodeLaravelRefactorFV PhpStormFileEditViewNavigateCodeLaravelRefactorFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vToolsWindowHelpProjectv© DeviceRepository.php© ElasticActivityRepository.pl© EmailMessageRepository.p© GenericAiPromptRepositor:© GroupRepository.php© InboxEmailBatchRepositoryInboxRepository.php© InvitationRepository.php©JobRepository.php© LanguageRepository.php© MomentRepository.php© NotificationRepository.php© ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.php® PlaylistActivityRepository.fPlaylistRepository.phpPlaylistShareRepository.ph© QuestionRepository.php© RoleChangeEventRepositol© RoleRepository.php© SearchRepository.php© SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.TaskRepository.php© TeamAiContextRepository.TeamDomainsRepository.p©TeamInsightsRepository.pt©TeamRepository.php©ThemeRepository.php© TimezoneRepository.php© TopicRepository.php© TopicTriggerRepository.ph© TrackRepository.phpC) TranscriptionModelLocaleF© TranscriptionRepository.phC) TranscriptionSummarvRep© UserRepository.php© VocabularyRepository.pnp> D Rulesv D Services> [ Activity> D AjReportsD AvatarD CalendarD ConferenceD Crm[ Import> MInternalv D Kioskv D AutomatedReports© ActivityTypeService.© AskJiminnyReportAc© AutomatedReportsCi© AutomatedReportsSt© ReportController.phpC AutomatedReportsRepository.php© JiminnyDebugCommand.phpAutomatedReportsService.php© UserPilotActivityListener.php© ActivityLogged.php© AutomatedReportsSendCommand.phpCreateHeldActivityEvent.php© AutomatedReportsCallbackService.php© AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUniquepublic function handle(1):AutomatedReportsCommand.php© TrackProviderInstalledEvent.php© RequestGenerateAskJiminnyReportJob.php© AddLayoutEntities.php© Team.phpCreateActivityLoggedEvent.php© RequestGenerateReportJob.php9092939598100102103104105106107108109110111114115116117118119lecuri$savedSearch = $automatedReport->getSavedSearch();if ($savedSearch === null) {$Logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', ['automatedReportUuid' = $this->reportUvid,]):rerurnr$prompt = $automatedReport->getAskAnythingPromptO);if ($prompt === null) {$logger->warning(self::LOG_PREFIXSkipped, ask anything prompt not found', I'automatedReportUuid' => $this->reportUvid,1):return;$this->reportResult = $reportService->createReportResult(automatedReport: $automatedReport.data: ['status' => AutomatedReportResult::STATUS_DEFAULT,'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,):Sactivityids = $activityService->getActivigy[dsForSavedSearch (savedSearch: $savedSearch,user: +creacor,):$logger->info(self::LOG_PREFIX .' Fetched activity IDs', I'automatedReportUvid' = $this->reportUvid,'activityCount' => count($activityIds),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {$this->failReport( reason: AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);"Loccer-sntoselt..Lug Prorix.'Not enough activities, skipped', Iutolareoreoortuula > suns->redortuuror'activityCount' => count($activityIds),1):lecuri$payLoad = $reportService->getAskJiminnyGenerateReportPayLoad(autonaredredort: vauronaredkedort.Windsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)M3A20383941Support Daily • in 3h 4mARequestGenerateAsk.JiminnvRenort.lobTest100% C•= custom.logd console [STAGING]= laravel.logA SF [jiminny@localhost]© AskJiminnyReportActivityService.php >A HS_local [iminny@localhost]A console [PROD]© RequestGenerateAskJiminnyReportJobTest.phpAl console [EU]class AskJiminnyReportActivityServiceprivate const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ACENTVACTUd LUATC.APAKAN ONU DAUEActivityUpdatedDate::PARAM_UPDATED_FROM,ActivityUpdatedDate: :PARAM_UPDATED_TO,ClosingPeriodFilter: :KEY_START_DATE,ClosingPeriodFilter::KEY_END_DATE,public function __construct(private readonly ActivitySearch $activitySearch,private readonly ElasticActivityRepository $elasticRepository,private readonly Loggerintertace logger,) 4...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnythingByFilter.* @return string[] Activity IDs*/public function getActivityIdsForSavedSearch(Search $savedSearch,User $user,): array {$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);$criteria = Criteria::createFromRequest(array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT,'page' => 1]),$user->getTimezone()):$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);$activityIds = $this-›elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger→>info('[AskLimionxReport] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getId(),'user_id'=> $user->getId(),'activity_count' => count($activityIds),1):return $activityIds;privace tunccion bulLakequestrarams-romsearch(search +savedsearch, user suser: array...Tue 14 Apr 11:56:51X201 A Vwinasun leam50:41uir-o( 4 spaces...
|
NULL
|
NULL
|
NULL
|
10750
|
|
10751
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 4 m100% CTue 14 Apr 11:56:54ec2-user@ip-10-30-93-249:~DOCKER9812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth":false, "currentMonth":4, "isQuarterlyMonth":true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453e6c4054", "teamId":1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f''}root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10751
|
|
10752
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error...
|
PhpStorm
|
faVsco.js – RequestGenerateAskJiminnyReportJob.php
|
NULL
|
10752
|
|
10753
|
PhpStormFileFditViewNavigateCodeLaravelRetactonToo PhpStormFileFditViewNavigateCodeLaravelRetactonToolsWindowHelpFV faVsco.js v#11894 on JY-18909-automated-reports-ask-iminny K vProject vAudio• → AutomatedReportsC RequestGenerateAskJir(C) RequestGenerateRepori(©) SendReportJob.php© SendReportMailJob.php> M Calendar• Uerm> MDealRisks› MMailbox› M MeetinaBotMiddleware→ StreamingTeam>W TelephonyJ UserC BaseProcessingJob.php© DummyJob.php© ImportRecallAlRecordingsJ© ImportRemoteTrackJob.phC Job.ohnC) JobDispatcher.pho© JobDispatcherInterface.phC) PurgeSoftDeletedOpporturT SqsVisibilityControl.php> D Listeners› D Mailv _ Models>@ Activity• MAi> CJ AskAnything> M Calendar> M Connection> M ContractsCrm› ElasticSearch→ Feature› _ opportunity_ Participant_ PlaybackThemePlaylistMScorecard>MWebhookC) Account.oho© Activity.phpC Address.php(C) AiPrompt.php(C) AutomatedReport.php© AutomatedReportResult.ph(C) Calendar.phpc) Callimport.php© CoachingFeedback.php© CoachingFeedbackVisibilit© CoachingSection.phpC) CoachinaSectionCriterion.rC) CoachinaSectionCriterionFC CoachingSectionFeedback© CommentAbstract.pngD Commentinterface.php(©) ReportController.phpJiminnybeouecommana.ongcAutomatedRenorissenccommana.ongC AutomatedReportsCommand.phpC AddLayoutEntities.phpC Team.phpC AutomatedReportsRepository.pnp© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?rovidernstalled-vent.ono© CreateActivityLoggedevent.php(©) UserPilotActivityListener.php©) ActivityLogged.phpC) AutomatedReportsCallbackService.php© RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeporJob.onoC AutomatedReportResult.php(e) AutomatedRenort.ohn.class RequestGenerateAskJ1minnyReportJob 1mplements ShouldQueue, ShouldBeUnique100101102103104105106ML0/I1081091110111112113114115116public function handlel1):return;"savedsearch = vauronareckedort-eravedsearchloIt (osavedsearch === nulb) 1"Loodere>varnno, seut.aLud racrie.'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1);lecurisprompt = sautomatedReport->getAskAnythingPromptor1T (sprompt === nULU) 1s Logger->warningtselt::LU6_PREFLX•'Skipped, ask anything prompt not found', [aucomatedkeporcuuld = suhis->reporcuula,recurn,$this->reportResult = SreportService->createReportResult(automatedReport: sautomatedReport,data: L'status' => AutomatedReportresult::STATUS_DEFAULT,"med1a_type => Aucomatedkeporcsservice:.REULA_TYPE_PUr,SactivitvIds = SactivitvService->getActivitvIdsForSavedSearch0savedSearch: $savedSearch,usel. scl ealot):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', ['automatedReportuuld' => sthis->reportuuld,activitycount = count(sactivitylas),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {Sthis->failReport@ reason: AutomatedReportResult::REASON_NOT ENOUGH ACTIVTTIES):SLoqger->info(self::LOG_PREFIX .Not enough activities, skipped'. l'automatedReportUuid' => $this->reportUuid,'activityCount" => count(Sactivitylds),1);PecurtldWinasurt changelog 2.12.21: A new version is avallable. # View Changelog (today 10:33,libdSupport Daily • in 3h 4 m100% [2Tue 14 Apr 11:56:56• RequestGenerateAskJiminnyReportJobTest v= custom.log= laravel.loge SF (iminny@localhostc HS_local fiminny@localhost)& console (PROD]& console (EU]L console (STAGINGC AskJiminnyReportActivityService.phpRequestGenerateaskyiminnykeportJoblest.pnpV2 21 лclass ASkJ1minnyReportActiv1tyservice39--5061626364private const 1nt DEFAULI_/UP_ACIIVLILES_COUNl = 100;private const array [ENV_SECRET] START DATE.ActivitvActualDate::PARAM END DATE.ActivityUpdatedDate::PARAM_UPDATED_FROMActivityUpdatedDate::PARAM_UPDATED_ TO,ClosingPeriodFilter::KEY_START DATE.ClosingPer1odr1lter::KEY_END_DATE,pubLic tunction -_constructprivate readonly Aculvicysearch sacuivitysearch,private readonly ElasticActivitykeposicory selasclckepository.orvare reaconuy Loocerinuertace "Lodder• 4...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint 1s applied - matching the behaviour of getcontextrorAskAnythingßyrilter.* @return string[] Activity IDs*/pubuic tunccion getAculvitylasrorsavedsearcncsearch ssaveosearch.iuser nuser.0: array 4SrequestParams = Sthis->buildRequestParamsFromSearchSsavedSearch, Suser):Scriteria = Criteria::createFromRequestarray_merge($requestParams, L'Limit' => seLf::DEFAULT_TOP_ACTIVITTES_COUNT, 'page' => 1J),suser->getlimezoneptilterser = suhls-›aculvitysearch-›gecunbemandrageriltersec(scriterla, suser))$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getido,'user id'=> Suser->getido'activity_count' => count($activitylds),1):return sactivitvids.private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array(...}w Windsur leams98.buir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10753
|
|
10754
|
JY-20543 add AJ reports User pilot tracking by Lak JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Console Home | Console Home | us-east-2
Console Home | Console Home | us-east-2
SecurityGroup | EC2 | us-east-2
SecurityGroup | EC2 | us-east-2
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jiminny
Jiminny
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
New Tab
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AWS Console Home
Skip to Main Content
Skip to Main Content
Amazon Q
Services
Search
Ask Amazon Q
[Option+S]
CloudShell
Notifications (none available)
Help & support
Settings
United States (Ohio)
United States (Ohio)
STAGE
Account ID: 4387-4037-0364
STAGE
EC2 EC2
EC2
Elastic Container Service Elastic Container Service
Elastic Container Service
S3 S3
S3
CodeDeploy CodeDeploy
CodeDeploy
CloudWatch CloudWatch
CloudWatch
ElastiCache ElastiCache
ElastiCache
Aurora and RDS Aurora and RDS
Aurora and RDS
Amazon OpenSearch Service Amazon OpenSearch Service
Amazon OpenSearch Service
CloudFront CloudFront
CloudFront
MediaLive MediaLive
MediaLive
Open side navigation
CloudWatch
CloudWatch
Logs Insights
Logs Insights
Query definition
Query definition
Info : Query definition
5m (5 Minutes)
30m (30 Minutes)
1h (1 Hour)
3h (3 Hours)
12h (12 Hours)
Custom
Custom
Compare (Off)
Compare
(
Off
)
Time zone UTC timezone
UTC timezone
Start tailing with selected log group (opens in a new tab)
Start tailing
Query scope
Query scope All log groups
All log groups
All log groups
Log class
Log class STANDARD
STANDARD
Account(s)
Account(s) Change Account(s)
Change Account(s)
Remove All accounts
Undo
Redo
Logs Insights QL
Query generator
Query generator
Fields
Saved and sample queries
Query commands
Run query
Cancel
Save
History
Completed. Query executed for
147 log groups.
View log groups used in query
Logs (10)
Logs
(
10
)
Patterns (5)
Patterns
(
5
)
Visualization
Visualization
Logs (10)
Logs (10)
Summarize results
Summarize results
Investigate
Investigate
Share results
Share results
Export results
Export results
Add to dashboard
Showing 10 of 10 records matched
107,195 records (265.0 MB) scanned in 3.2s @ 33,561 records/s (83.0 MB/s)
Hide histogram
Hide histogram
Filter table results
2026-04-14T08:41:12.165Z
[2026-04-14 08:41:12] staging.INFO: [AskJiminnyReport:Generate] Not enough activities, skipped {"automatedReportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","activityCount":0} {"correlation_id":"fe196b93-4966-4e27-ab20-b7acafbc543f","trace_id":"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}
worker-analytics/worker-analytics/f5f75b59051b4979aafbc4c1279529e2 Opens in a new tab
438740370364:worker-analytics
2026-04-14T08:41:12.159Z
[2026-04-14 08:41:12] staging.INFO: [AskJiminnyReport:Generate] Fetched activity IDs {"automatedReportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","activityCount":0} {"correlation_id":"fe196b93-4966-4e27-ab20-b7acafbc543f","trace_id":"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}
worker-analytics/worker-analytics/f5f75b59051b4979aafbc4c1279529e2 Opens in a new tab
438740370364:worker-analytics
2026-04-14T08:41:12.036Z
[2026-04-14 08:41:12] staging.INFO: [AskJiminnyReport:Generate] Started {"automatedReportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8"} {"correlation_id":"fe196b93-4966-4e27-ab20-b7acafbc543f","trace_id":"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}
worker-analytics/worker-analytics/f5f75b59051b4979aafbc4c1279529e2 Opens in a new tab
438740370364:worker-analytics
2026-04-14T08:41:12.008Z
[2026-04-14 08:41:12] staging.INFO: [AskJiminnyReport:Generate] Response received {"response":{"message":"Ask Anything report request has been queued for processing","request_id":"38817a7e-954d-41a2-822a-6c01f7f00073","status":"queued"}} {"correlation_id":"214815ad-d355-43df-ab4a-ab3ad896c871","trace_id":"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}
worker-analytics/worker-analytics/f5f75b59051b4979aafbc4c1279529e2 Opens in a new tab
438740370364:worker-analytics
2026-04-14T08:41:11.731Z
[2026-04-14 08:41:11] staging.INFO: [AskJiminnyReport:Generate] Request sent {"automatedReportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","reportUuid":"38817a7e-954d-41a2-822a-6c01f7f00073","payload":{"user_question":"test","call_ids":["54964443","54964442","54214348","54747783","54792639","54355211","54214356","54214362","54373257","54276602","54547166","54357434","54638437","54439335","54184628","54435911","54547029","54580912","54314274","53918272","54447612","54561308","52175046","54531535","54495620","52753147","52175055","54358692","54020412","54424068","54222599","53852885","52697526","53944212","54222051","54125650","54284918","54137014","54142985","53755346","54078231","52175067","54021634","53971125","54077453","54010996","52759195","53028445","54065927","52175082","53920744","54020314","52714861","53765213","53926207","52175042","52948707","53602066","53824355","53769276","53048081","52263045","52564798","53604424","53575428","52167221","53545307","53545088","53606423","52956249","52894249","52568574","52527230","53058889","52760234","52263048","52451159","52175073","52358247","52189687","52232025","51980465","52430474","52363300","52346694","52359342","52231503","52255239","50934254","52303651","52258169","51958927","52242714","52239097","52083853","52083904","51765719","52072580","51525359","51806803"],"team_id":1,"request_id":"38817a7e-954d-41a2-822a-6c01f7f00073","callback_url":"https://team:[EMAIL]/webhook/reports/ready","report_period":"13 Apr 2026","report_name":"Ask Jiminny test report"}} {"correlation_id":"214815ad-d355-43df-ab4a-ab3ad896c871","trace_id":"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}
worker-analytics/worker-analytics/f5f75b59051b4979aafbc4c1279529e2 Opens in a new tab
438740370364:worker-analytics
2026-04-14T08:41:11.721Z
[2026-04-14 08:41:11] staging.INFO: [AskJiminnyReport:Generate] Fetched activity IDs {"automatedReportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","activityCount":100} {"correlation_id":"214815ad-d355-43df-ab4a-ab3ad896c871","trace_id":"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}
worker-analytics/worker-analytics/f5f75b59051b4979aafbc4c1279529e2 Opens in a new tab
438740370364:worker-analytics
2026-04-14T08:41:11.233Z
[2026-04-14 08:41:11] staging.INFO: [AskJiminnyReport:Generate] Started {"automatedReportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9"} {"correlation_id":"214815ad-d355-43df-ab4a-ab3ad896c871","trace_id":"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}
worker-analytics/worker-analytics/f5f75b59051b4979aafbc4c1279529e2 Opens in a new tab
438740370364:worker-analytics
2026-04-14T08:41:05.703Z
[2026-04-14 08:41:05] staging.INFO: [AskJiminnyReport:Generate] Not enough activities, skipped {"automatedReportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","activityCount":0} {"correlation_id":"9bf4065b-7aba-4dd9-8d33-042890e18be9","trace_id":"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}
worker-analytics/worker-analytics/f5f75b59051b4979aafbc4c1279529e2 Opens in a new tab
438740370364:worker-analytics...
|
Firefox
|
CloudWatch | us-east-2 — Work
|
us-east-2.console.aws.amazon.com/cloudwatch/home?r us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logsV2:logs-insights$3FqueryDetail$3D~(end~0~start~-3600~timeType~'RELATIVE~tz~'UTC~unit~'seconds~editorString~'fields*20*40timestamp*2c*20*40message*2c*20*40logStream*2c*20*40log*0a*7c*20filter*20*40message*20like*20*22*5bAskJiminnyReport*3aGenerate*5d*22*20*0a*7c*20filter*20*40message*20not*20like*20*2fAnalytic*2f*20*7c*20filter*20*40message*20not*20like*20*2fTranscript*2f*0a*7c*20filter*20*40message*20not*20like*20*2fWebhook*2f*20*7c*20filter*20*40message*20not*20like*20*2fMeetingBot*2f*20*0a*7c*20limit*2010000~queryId~'0551e814-f51a-4339-8372-80d7ba4cef27~source~(~'*2a)~lang~'CWLI~logClass~'STANDARD~accountIDs~(~'All)~queryBy~'allLogGroups)...
|
10754
|
|
10755
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10755
|
|
10756
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 3 m100% CTue 14 Apr 11:57:20ec2-user@ip-10-30-93-249:~DOCKER• 8812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth":false, "currentMonth":4, "isQuarterlyMonth":true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453e6c4054", "teamId":1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f''}root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10756
|
|
10757
|
PhpStormFileEoitViewNavigateCodelaraveRefactonTool PhpStormFileEoitViewNavigateCodelaraveRefactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vProject v© DeviceRepository.phpC ElasticActivityRepository.p© EmailMessageRepository.p© GenericAiPromptRepositor© GroupRepository.php(C InboxEmailBatchRepositor)C InboxRepository.pnp© InvitationRepository.phpC) JobRepository.phpC) LanquageRepository.php© MomentRepository.phpNotificationRepository.phpC) ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.phpC PlavlistActivityRepository.p(© PlaylistRepository.png(C PlaylistShareRepository.phC) QuestionRepository.phpC) RoleChangeEventRepositolC RoleRepository.php© SearchRepository.phpC SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.(C) TaskRepository.phoC TeamAiContextRepository.C TeamDomainsRepository.p(©) TeaminsightsRepository.phC) TeamRepository.phpC ThemeRepository.phpC TimezoneRepository.php© TopicRepository.php© TopicTriggerRepository.ph© TrackRepository.phpC) TranscriptionModelLocaleF© TranscriptionRepository.prC) TranscriptionSummarvRepC UserRepository.php© VocabularyRepository.pnp> _ Rulesv D Services>D Activity>D AReportsAvatarcalendarM ConferenceM Crm>MImport> MInternalv → Kioskv _ AutomatedReports(C) ActivityTypeService.(©) AskJiminnyReportAc(C) AutomatedReportse(C) AutomatedReportsSc) ReportController.onpJiminnybeouecommana.ongC AutomatedReportsSendCommand.php© AutomatedReportsCommand.phpC AddLayoutEntities.phpC Team.phpC AutomatedReportsRepository.pnp© AutomatedReportsService.phpCreateHeldActivityEvent.phpe) Track?roviderinstalled-vent.ono© CreateActivityLoggedevent.php(©) UserPilotActivityListener.php©) ActivityLogged.phpC) AutomatedReportsCallbackService.php© RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeporJob.onoC AutomatedReportResult.php(e AutomatedRenort.ohrclass RequestGenerateAskJ1minnyReportJob 1mplements ShouldQueue, ShouldBeUnique81831100101102103104105106ML0/I1081091110111112113114115116public function handlel1):Tecurtin"savedsearch = vauronareckedort-eravedsearchloif (SsavedSearch === null) &+Logger->warninglselt..Loo_PkErLX•'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1):lecurisprompt = sautomatedReport->getAskAnythingPrompton1T (sprompt === nULU) 1$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', ['aucomatedkeporcuuld = suhis->reporcuuld,recurn,$this->reportResult = SreportService->createReportResult(automatedReport: sautomatedReport,data: L'status' => AutomatedReportResult::STATUS_DEFAULT,"medla_type => Automacedkeporcsservice:.REULA_TYPE_PUr.MactivitvIds = $activitvService->getActivitvIdsForSavedSearch(savedSearch: $savedSearch,usel. peledtor,):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', ['automatedReportuuld' => sth1s->reportuuld,activitycount = count(sactivitylas),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {Sthis->failReport@ reason: AutomatedReportResult::REASON_NOT ENOUGH ACTIVTTIES):$Logger->info(self::LOG_PREFIXNot enough activities, skipped', l'automatedReportUuid' => $this->reportUvid,'activityCount" => count(Sactivitylds),1);PecurtldWinasurt changelog 2.12.21: A new version is avallable. l View Changelog (today 10:35)Support Daily • in 3 h 3 m100% [Tue 14 Apr 11:57:20• RequestGenerateAskJiminnyReportJobTest v= custom.log= laravel.loge SF (iminny@localhostc HS_local fiminny@localhost)& console (PROD]& console (EU]L console (STAGINGC AskJiminnyReportActivityService.phpRequestGenerateaskJiminnykeportJoblest.phpV2 21 лclass ASkJ1minnyReportActiv1tyservice39-- 5061626364private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET] START DATE.ActivitvActualDate::PARAM END DATE.ActivityUpdatedDate::PARAM_UPDATED_FROMActivityUpdatedDate::PARAM_ UPDATED_ TO.ClosingPeriodFilter::KEY_START DATE.ClosingPer1odr1lter::KEY_END_DATE,pubLic tunction -_constructprivate readonly Aculvitysearch saculvitysearch,private readonly ElasticAculvitykeposicory selasclcкepos1cory.orvare reaconuy Loocerinuertace "Lodder• 4...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint 1s applied - matching the behaviour of getcontextrorAskAnythingßyrilter.* @return string[] Activity IDspubuic tunccion getAcuivity.asrorsavedsearchcsearch ssaveosearch.iuser nuser.0: array 4SrequestParams = Sthis->buildRequestParamsFromSearchSsavedSearch, Suser):Scriteria = Criteria::createFromRequestoarray_merge(srequestParams, l'Lim1t => self::DEFAULT_T0P_ACTIVIT1ES_COUN/, 'page' => 1J)suser->getlimezoneptilterser = suhls-›aculvitysearch-›gecunbemandrageriltersec(ocriterla, suser)i$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger→>info('[AskJiminnyReport] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getido,'user id'= Suser->getido'activity_count' => count($activitylds),1):return sactivitvids.private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array(...hW Winasunt leams518/28 charsuir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10757
|
|
10758
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}...
|
PhpStorm
|
faVsco.js – RequestGenerateAskJiminnyReportJob.php
|
NULL
|
10758
|
|
10759
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 3 m100% CTue 14 Apr 11:57:23ec2-user@ip-10-30-93-249:~DOCKER• 8812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth":false, "currentMonth":4, "isQuarterlyMonth":true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453e6c4054", "teamId":1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f''}root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10759
|
|
10760
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 3 m100% CTue 14 Apr 11:57:25ec2-user@ip-10-30-93-249:~DOCKER• 8812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth":false, "currentMonth":4, "isQuarterlyMonth":true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453e6c4054", "teamId":1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f''}root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10760
|
|
10761
|
PhpStormFileEditViewNavigateCodeLaravelRefactorToo PhpStormFileEditViewNavigateCodeLaravelRefactorToolsWindowFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vHelpProjectv© DeviceRepository.php© ElasticActivityRepository.pl© EmailMessageRepository.p© GenericAiPromptRepositor:© GroupRepository.php© InboxEmailBatchRepositoryInboxRepository.php© InvitationRepository.php© JobRepository.php© LanguageRepository.php© MomentRepository.php© NotificationRepository.php© ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.php® PlaylistActivityRepository.fPlaylistRepository.phpPlaylistShareRepository.ph© QuestionRepository.php© RoleChangeEventRepositor© RoleRepository.php© SearchRepository.php© SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.TaskRepository.php© TeamAiContextRepository.TeamDomainsRepository.p©TeamInsightsRepository.pt©TeamRepository.php©ThemeRepository.php© TimezoneRepository.php© TopicRepository.php© TopicTriggerRepository.ph© TrackRepository.php© TranscriptionModelLocaleF© TranscriptionRepository.phC) TranscriptionSummarvRep© UserRepository.php© VocabularyRepository.pnp> D Rulesv D Services> [ Activity> D AjReportsD AvatarcalendarD ConferenceD Crm>MImport> MInternallv D Kioskv _ AutomatedReports© ActivityTypeService.© AskJiminnyReportAc© AutomatedReportsCi© AutomatedReportsSt© ReportController.php© AutomatedReportsCommand.phpJiminnybeouecommana.ong© AddLayoutEntities.php© AutomatedReportsService.phpCreateHeldActivityEvent.phpUserPilotActivityListener.php© ActivityLogged.phpRequestGenerateAskJiminnyReportJob.php© AutomatedReportsSendCommand.phpC Team.php© AutomatedReportsRepository.php© TrackProviderInstalledEvent.php© CreateActivityLoggedEvent.php© AutomatedReportsCallbackService.phpRequestGeneratekeporJob.onoC AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUniquepublic function handle(1):818283100101102103104105106107108109110111112113114115116Tecurtin$savedSearch = $automatedReport->getSavedSearch;if ($savedSearch === null) {+Logger->warninglselt..Luo_PkErLX'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1):lecuri$prompt = $automatedReport->getAskAnythingPrompt();if ($prompt === null) {$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', I'aucomatedkeporcuuld = suhis->reporcuuld,1):recurn,$this->reportResult = $reportService->createReportResult(automatedReport: $automatedReport,data: ['status' => AutomatedReportResult::STATUS_DEFAULT,'media_type' => AutomatedReportsService: :MEDIA_TYPE_PDF,$activityIds = $activityService->getActivityIdsForSavedSearchCsavedsearch. ssaveasearch,usel. sul calolr$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', I'automatedReportUuid' = $this->reportUvid,'activityCount' => count($activityIds),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {$this->failReport( reason: AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);$logger→>info(self::LOG_PREFIX 'Not enough activities, skipped', I'automatedReportUvid' => Sthis->reportUvid,'activityCount' => count(SactivityIds),1);PecurtldWindsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)j Support Daily • in 3h 3 mA• RequestGenerateAskJiminnyReportJobTest v100% [8Tue 14 Apr 11:57:25= custom.log= laravel.logA SF [jiminny@localhost]A HS_local [jiminny@localhost]C AskJiminnyReportActivityService.phpRequestGenerateaskJiminnykeportJoblest.phpA console [PROD]A console (EU]Al console [STAGING]X2 01 ^class AskJiminnyReportActivityService39626364private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ActivityActualDate::PARAM_END_DATE,ActivityUpdatedDate::PARAM_UPDATED_FROM,ActivityUpdatedDate: :PARAM_UPDATED_TO,ClosingPeriodFilter: :KEY_START_DATE,ClosingPeriodFilter::KEY_END_DATE,public function -_construct(private readonly ActivitySearch SactivitySearch,private readonly ElasticActivityRepository $elasticRepository,orvare reaconuy Loccerinuertace "Lodder) (...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnythingByFilter.* Oreturn string[] Activity IDs*/pubuic tunccion getAcuivity.asrorsavedsearchcsearch ssaveosearch.user nuser.): array {$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);$criteria = Criteria::createFromRequest(array_merge($requestParams, ['Limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' →> 11),$user->getTimezone()$filterSet = $this->activitySearch->get0nDemandPageFilterSet($criteria, Suser);eaccade S7aCommand *1$activityIds = $this->elasticRepository->onDemandSearchIdsdfly($user, $criteria, $filterSet);$this->logger→>info('[AsKLiminnxReRQrt] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getId(),'user_id'=> $user->getId(),'activity_count' => count($activityIds),1):return $activityIds;private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array(...}winasun leams55:0924 charsuir-o( 4 spaces...
|
NULL
|
NULL
|
NULL
|
10761
|
|
10762
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10762
|
|
10763
|
PhpStormFileEditViewNavigateCodeLaravelRefactorToo PhpStormFileEditViewNavigateCodeLaravelRefactorToolsWindowFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vHelpProjectv© DeviceRepository.php© ElasticActivityRepository.pl© EmailMessageRepository.p© GenericAiPromptRepositor:© GroupRepository.php© InboxEmailBatchRepositoryInboxRepository.php© InvitationRepository.php© JobRepository.php© LanguageRepository.php© MomentRepository.php© NotificationRepository.php© ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.php® PlaylistActivityRepository.fPlaylistRepository.phpPlaylistShareRepository.ph© QuestionRepository.php© RoleChangeEventRepositor© RoleRepository.php© SearchRepository.php© SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.TaskRepository.php© TeamAiContextRepository.TeamDomainsRepository.p©TeamInsightsRepository.pt©TeamRepository.php©ThemeRepository.php© TimezoneRepository.php© TopicRepository.php© TopicTriggerRepository.ph© TrackRepository.php© TranscriptionModelLocaleF© TranscriptionRepository.phC) TranscriptionSummarvRep© UserRepository.php© VocabularyRepository.pnp> D Rulesv D Services> [ Activity> D AjReportsD AvatarcalendarD ConferenceD Crm>MImport> MInternallv D Kioskv _ AutomatedReports© ActivityTypeService.© AskJiminnyReportAc© AutomatedReportsCi© AutomatedReportsSt© ReportController.php© AutomatedReportsCommand.phpJiminnybeouecommana.ong© AddLayoutEntities.php© AutomatedReportsService.phpCreateHeldActivityEvent.phpUserPilotActivityListener.php© ActivityLogged.phpRequestGenerateAskJiminnyReportJob.php© AutomatedReportsSendCommand.phpC Team.php© AutomatedReportsRepository.php© TrackProviderInstalledEvent.php© CreateActivityLoggedEvent.php© AutomatedReportsCallbackService.phpRequestGeneratekeporJob.onoC AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUniquepublic function handle(1):818283100101102103104105106107108109110111112113114115116Tecurtin$savedSearch = $automatedReport->getSavedSearch;if ($savedSearch === null) {+Logger->warninglselt..Luo_PkErLX'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1):lecuri$prompt = $automatedReport->getAskAnythingPrompt();if ($prompt === null) {$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', I'aucomatedkeporcuuld = suhis->reporcuuld,1):recurn,$this->reportResult = $reportService->createReportResult(automatedReport: $automatedReport,data: ['status' => AutomatedReportResult::STATUS_DEFAULT,'media_type' => AutomatedReportsService: :MEDIA_TYPE_PDF,$activityIds = $activityService->getActivityIdsForSavedSearchCsavedsearch. ssaveasearch,usel. sul calolr$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', I'automatedReportUuid' = $this->reportUvid,'activityCount' => count($activityIds),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {$this->failReport( reason: AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);$logger→>info(self::LOG_PREFIX 'Not enough activities, skipped', I'automatedReportUvid' => Sthis->reportUvid,'activityCount' => count(SactivityIds),1);PecurtldWindsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)j Support Daily • in 3h 3 mA• RequestGenerateAskJiminnyReportJobTest v100% [8Tue 14 Apr 11:57:28= custom.log= laravel.logA SF [jiminny@localhost]A HS_local [jiminny@localhost]C AskJiminnyReportActivityService.phpRequestGenerateaskJiminnykeportJoblest.phpA console [PROD]A console (EU]Al console [STAGING]X2 01 ^class AskJiminnyReportActivityService39626364private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ActivityActualDate::PARAM_END_DATE,ActivityUpdatedDate::PARAM_UPDATED_FROM,ActivityUpdatedDate: :PARAM_UPDATED_TO,ClosingPeriodFilter::KEY_START_DATE,ClosingPeriodFilter::KEY_END_DATE,public function -_construct(private readonly ActivitySearch SactivitySearch,private readonly ElasticActivityRepository $elasticRepository,orvare reaconuy Loccerinuertace "Lodder) (...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnythingByFilter.* Oreturn string[] Activity IDs*/pubuic tunccion getAcuivity.asrorsavedsearchcSearch $savedSearch,user nuser.): array {$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);griteria = Criteria::createFromRequest(array_merge($requestParams, ['Limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' →> 11),$user->getTimezone()$filterSet = $this->activitySearch->get0nDemandPageFilterSet($criteria, Suser);$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger→>info('[AskLimionxReport] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getId(),'user_id'=> $user->getId(),'activity_count' => count($activityIds),1):return $activityIds;private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array(...}W Windsur leams55:50uir-of4 spaces...
|
NULL
|
NULL
|
NULL
|
10763
|
|
10764
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(aolSupport Daily - in 3 h 3 m100% CTue 14 Apr 11:57:30ec2-user@ip-10-30-93-249:~DOCKER• 8812026-04-1407:48:51]DEV (-zsh)882APP (-zsh)staging.INF0:[automated-reports]Started83ec2-user@ip-10-30-...-zsh-zsh86-zshO 87* Unable to acce...{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}O 88[2026-04-1407:48:51]staging.INFO: [automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true}id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}{"correlation_[2026-04-1407:48:51]fblecfded81"}staging.INFO: [automated-reports] Processing daily reports {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb","trace_id":"bfe6b131-e3ad-4cfc-8954-5[2026-04-14 07:48:517c-8954-5fb1ecfded81"}staging. INFO: [automated-reports]Found 2 daily reports to process{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id": "bfe6b131-e3ad-4cf[2026-04-14 07:48:51]staging. INFO:[automated-reports]Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9".,"teamId": 1, "frequency":"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51]staging.INF0:[automated-reports]DispatchingGenerate Report job for report {"reportUuid":"63e6d70b-b7cb-4dfa-8443-53453e6c4054","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id" : "bfe6b131-e3ad-4cfc-8954-5fblecfded81"}[2026-04-14 07:48:51] staging.INFO: [automated-reports] Completed{"correlation_id":"4c37ea47-eebd-4122-8c35-9d6b9d707beb", "trace_id":"bfe6b131-e3ad-4cfc-8954-5fblecfded81"}root@fee51d2e1f17:/home/jiminny# [ec2-user@ip-10-30-93-249 ~]$ dockerexec -it S(docker ps --format "{{.ID}}" --filter "name=ecs-worker" | head -1) /bin/bash -c "cd /home/jiminny && bash"root@73b64f5d54a3:/home/jiminny# php artisan automated-reports[2026-04-14 08:41:03] staging.INF0: [automated-reports] Started{"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"'}[2026-04-14 08:41:03]staging.INFO:[automated-reports]Checking conditions {"isMonday":false,"isFirstDay0fMonth": false, "currentMonth":4, "isQuarterlyMonth" :true} {"correlation_id": "c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id" : "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03] staging.INFO: [automated-reports] Processing daily reports6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8", "trace_id": "94b4fdcc-f609-42e7-b5b7-b[2026-04-14 08:41:03Jstaging.INFO: [automated-reports] Found 3 dailyreports to process7-b5b7-b6abfc67e02f"}{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id":"94b4fdcc-f609-42e[2026-04-14 08:41:031staging.INFO: [automated-reports] Dispatching Generate Report job for report {"reportUuid":"fa7417aa-538e-49ab-8827-77235637a6f9","teamId" : 1, "frequency" : "daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:03]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid": "63e6d70b-b7cb-4dfa-8443-53453eбc4054", "teamId" :1, "frequency" :"daily","type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f""})[2026-04-14 08:41:04]staging.INFO: [automated-reports]Dispatching Generate Report job for report {"reportUuid":"7e7846e2-c0ea-4040-88f4-0ae14b66ade8","teamId" :1, "frequency" :"daily", "type": "ask_jiminny"} {"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8"',"trace_id": "94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"}[2026-04-14 08:41:04] staging.INFO: [automated-reports]Completed{"correlation_id":"c858e03f-62bd-462d-add2-c1e12a4c4cf8","trace_id" :"94b4fdcc-f609-42e7-b5b7-b6abfc67e02f"})root@73b64f5d54a3:/home/jiminny#l...
|
NULL
|
NULL
|
NULL
|
10764
|
|
10765
|
PhpStormFileEditViewNavigateCodeLaravelRefactorToo PhpStormFileEditViewNavigateCodeLaravelRefactorToolsWindowFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vHelpProjectv© DeviceRepository.php© ElasticActivityRepository.pl© EmailMessageRepository.p© GenericAiPromptRepositor:© GroupRepository.php© InboxEmailBatchRepositoryInboxRepository.php© InvitationRepository.php© JobRepository.php© LanguageRepository.php© MomentRepository.php© NotificationRepository.php© ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.php® PlaylistActivityRepository.fPlaylistRepository.phpPlaylistShareRepository.ph© QuestionRepository.php© RoleChangeEventRepositor© RoleRepository.php© SearchRepository.php© SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.TaskRepository.php© TeamAiContextRepository.TeamDomainsRepository.p©TeamInsightsRepository.pt©TeamRepository.php©ThemeRepository.php© TimezoneRepository.php© TopicRepository.php© TopicTriggerRepository.ph© TrackRepository.php© TranscriptionModelLocaleF© TranscriptionRepository.phC) TranscriptionSummarvRep© UserRepository.php© VocabularyRepository.pnp> D Rulesv D Services> [ Activity> D AjReportsD AvatarcalendarD ConferenceD Crm>MImport> MInternallv D Kioskv _ AutomatedReports© ActivityTypeService.© AskJiminnyReportAc© AutomatedReportsCi© AutomatedReportsSt© ReportController.php© AutomatedReportsCommand.phpJiminnybeouecommana.ong© AddLayoutEntities.php© AutomatedReportsService.phpCreateHeldActivityEvent.phpUserPilotActivityListener.php© ActivityLogged.phpRequestGenerateAskJiminnyReportJob.php© AutomatedReportsSendCommand.phpC Team.php© AutomatedReportsRepository.php© TrackProviderInstalledEvent.php© CreateActivityLoggedEvent.php© AutomatedReportsCallbackService.phpRequestGeneratekeporJob.onoC AutomatedReportResult.php(e) AutomatedRenort.ohrclass RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUniquepublic function handle(1):818283100101102103104105106107108109110111112113114115116Tecurtin$savedSearch = $automatedReport->getSavedSearch;if ($savedSearch === null) {+Logger->warninglselt..Luo_PkErLX'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1):lecuri$prompt = $automatedReport->getAskAnythingPrompt();if ($prompt === null) {$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', I'aucomatedkeporcuuld = suhis->reporcuuld,1):recurn,$this->reportResult = $reportService->createReportResult(automatedReport: $automatedReport,data: ['status' => AutomatedReportResult::STATUS_DEFAULT,'media_type' => AutomatedReportsService: :MEDIA_TYPE_PDF,$activityIds = $activityService->getActivityIdsForSavedSearchCsavedsearch. ssaveasearch,usel. sulcalol$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', I'automatedReportUuid' = $this->reportUvid,'activityCount' => count($activityIds),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {$this->failReport( reason: AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);$logger→>info(self::LOG_PREFIX 'Not enough activities, skipped', I'automatedReportUvid' => Sthis->reportUvid,'activityCount' => count(SactivityIds),1);PecurtldWindsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)Support Daily • in 3 h 3 mA• RequestGenerateAskJiminnyReportJobTest v100% [2Tue 14 Apr 11:57:30= custom.log= laravel.logA SF [jiminny@localhost]A HS_local [jiminny@localhost]C AskJiminnyReportActivityService.phpRequestGenerateaskJiminnykeportJoblest.phpA console [PROD]A console (EU]Al console [STAGING]X2 01 ^class AskJiminnyReportActivityService39626364private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ActivityActualDate::PARAM_END_DATE,ActivityUpdatedDate::PARAM_UPDATED_FROM,ActivityUpdatedDate: :PARAM_UPDATED_TO,ClosingPeriodFilter::KEY_START_DATE,ClosingPeriodFilter::KEY_END_DATE,public function -_construct(private readonly ActivitySearch SactivitySearch,private readonly ElasticActivityRepository $elasticRepository,orvare reaconuy Loccerinuertace "Lodder) (...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnythingByFilter.* Oreturn string[] Activity IDs*/pubuic tunccion getAcuivity.asrorsavedsearchcSearch $savedSearch,user nuser.): array {$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);$criteria = Criteria: :createFromRequest(array_merge($requestParams, ['Limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' →> 11),$user->getTimezone()$filterSet = $this->activitySearch->get0nDemandPageFilterSet(Scriteria, Suser);$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger→>info('[AskLimionxReport] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getId(),'user_id'=> $user->getId(),'activity_count' => count($activityIds),1):return $activityIds;private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array(...}W Windsurt leams 50:10uir-of4 spaces...
|
NULL
|
NULL
|
NULL
|
10765
|
|
10766
|
JY-20543 add AJ reports User pilot tracking by Lak JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Console Home | Console Home | us-east-2
Console Home | Console Home | us-east-2
SecurityGroup | EC2 | us-east-2
SecurityGroup | EC2 | us-east-2
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jiminny
Jiminny
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
New Tab
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AWS Console Home
Skip to Main Content
Skip to Main Content
Amazon Q
Services
Search
Ask Amazon Q
[Option+S]
CloudShell
Notifications (none available)
Help & support
Settings
United States (Ohio)
United States (Ohio)
STAGE
Account ID: 4387-4037-0364
STAGE
EC2 EC2
EC2
Elastic Container Service Elastic Container Service
Elastic Container Service
S3 S3
S3
CodeDeploy CodeDeploy
CodeDeploy
CloudWatch CloudWatch
CloudWatch
ElastiCache ElastiCache
ElastiCache
Aurora and RDS Aurora and RDS
Aurora and RDS
Amazon OpenSearch Service Amazon OpenSearch Service
Amazon OpenSearch Service
CloudFront CloudFront
CloudFront
MediaLive MediaLive
MediaLive
Open side navigation
CloudWatch
CloudWatch
Logs Insights
Logs Insights
Query definition
Query definition
Info : Query definition
5m (5 Minutes)
30m (30 Minutes)
1h (1 Hour)
3h (3 Hours)
12h (12 Hours)
Custom
Custom
Compare (Off)
Compare
(
Off
)
Time zone UTC timezone
UTC timezone
Start tailing with selected log group (opens in a new tab)
Start tailing
Query scope
Query scope All log groups
All log groups
All log groups
Log class
Log class STANDARD
STANDARD
Account(s)
Account(s) Change Account(s)
Change Account(s)
Remove All accounts
Undo
Redo
Logs Insights QL
Query generator
Query generator
Fields
Saved and sample queries
Query commands
Run query
Cancel
Save
History
Completed. Query executed for
147 log groups.
View log groups used in query
Logs (10)
Logs
(
10
)
Patterns (5)
Patterns
(
5
)
Visualization
Visualization
Logs (10)
Logs (10)
Summarize results
Summarize results
Investigate
Investigate
Share results
Share results
Export results
Export results
Add to dashboard
Showing 10 of 10 records matched
107,195 records (265.0 MB) scanned in 3.2s @ 33,561 records/s (83.0 MB/s)
Hide histogram...
|
Firefox
|
CloudWatch | us-east-2 — Work
|
us-east-2.console.aws.amazon.com/cloudwatch/home?r us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logsV2:logs-insights$3FqueryDetail$3D~(end~0~start~-3600~timeType~'RELATIVE~tz~'UTC~unit~'seconds~editorString~'fields*20*40timestamp*2c*20*40message*2c*20*40logStream*2c*20*40log*0a*7c*20filter*20*40message*20like*20*22*5bAskJiminnyReport*3aGenerate*5d*22*20*0a*7c*20filter*20*40message*20not*20like*20*2fAnalytic*2f*20*7c*20filter*20*40message*20not*20like*20*2fTranscript*2f*0a*7c*20filter*20*40message*20not*20like*20*2fWebhook*2f*20*7c*20filter*20*40message*20not*20like*20*2fMeetingBot*2f*20*0a*7c*20limit*2010000~queryId~'0551e814-f51a-4339-8372-80d7ba4cef27~source~(~'*2a)~lang~'CWLI~logClass~'STANDARD~accountIDs~(~'All)~queryBy~'allLogGroups)...
|
10766
|
|
10767
|
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Jiminny Inc
Jiminny (Staging)
Add workspaces
Home
Home
DMs
DMs
Activity
Activity
Files
Files
Later
Later
More…
More
Unreads
Threads
Huddles
Drafts & sent
Directories
platform-inner-team
ai-chapter
alerts
backend
confusion-clinic
curiosity_lab
engineering
frontend
general
infra-changes
jiminny-bg
platform-tickets
product_launches
random
releases
sofia-office
support
thank-yous
the_people_of_jiminny
Aneliya Angelova
,
Nikolay Yankov
,
Steliyan Georgiev
Steliyan Georgiev
Adelina Petrova
,
Ilian Kyuchukov
,
Steliyan Georgiev
Adelina Petrova
Galya Dimitrova
Vasil Vasilev
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Nikolov
Galya Dimitrova
,
Nikolay Yankov
Nikolay Yankov
Jira Cloud
Toast
Google Calendar
Messages
Messages
Add canvas
Add canvas
Add and Edit Channel Tabs
Canvas
List
Folder
Jump to date
Nikolay Yankov
Today at 10:32:27 AM
10:32 AM
10 мин минаха, още не идва репорт
Lukas Kovalik
Today at 10:34:10 AM
10:34 AM
не само daily но трябва да се пусне команда
Today at 10:35:08 AM
10:35
php artisan automated-reports
Nikolay Yankov
Today at 10:35:39 AM
10:35 AM
значи не създава веднага по принцип, в някакъв час на деня ли стъздава?
Lukas Kovalik
Today at 10:36:11 AM
10:36 AM
това ще гледа всичко applicable за днес (ако не понедлник или начало на месец е само daily)
Today at 10:36:27 AM
10:36
крон го пуска през нощ
Today at 10:37:19 AM
10:37
така че мануално пусни при тестване
Today at 10:38:26 AM
10:38
ако трябва да тестваме други репорти може да променя команда за тестване да приема параметър за report template и д си пускаме определен когато тестваме
Nikolay Yankov
+SlackFileEditViewGoHistoryWindowHelpEL→HomeDMsActivityFilesLater..•More>0 lhl# Support Daily • in 3h 3 mTue 14 Apr 11:57:44+Jiminny ...# Starred8platform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea DimitravoSearch Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+tnove ne tccioune chyirponornone nunironопределен когато тествамеNikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievAa100% <478Fuune 4Today ~New...
|
Slack
|
Aneliya Angelova, Nikolay Yankov, Steliyan Georgie Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev (DM) - Jiminny Inc - Slack...
|
NULL
|
10767
|
|
10768
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…...
|
PhpStorm
|
faVsco.js – RequestGenerateAskJiminnyReportJob.php
|
NULL
|
10768
|
|
10769
|
PhpStormFileEoitViewNavigateCodelaraveRetactonTool PhpStormFileEoitViewNavigateCodelaraveRetactonToolsWindowHelpFV ravsco.is#11894 on.lY-18909-automated-renorts-ask-liminnvProject vAudio• → AutomatedReportsC RequestGenerateAskJir(C) RequestGenerateRepori(©) SendReportJob.php© SendReportMailJob.php> M Calendar• Uerm> MDealRisks> MMailbox› M MeetinaBotMiddlewareStreamingTeam>W TelephonyJ UserC BaseProcessingJob.phpg DummyJob.php© ImportRecallAlRecordingsJ© ImportRemoteTrackJob.phC Job.ohnC) JobDispatcher.pho© JobDispatcherInterface.phC) PurgeSoftDeletedOpporturT SqsVisibilityControl.php> D Listeners› D Mailv _ Models>@ Activity• MAi> CJ AskAnything> M Calendar> M Connection> M ContractsCrm› ElasticSearch→ Feature> _ opportunity_ Participant_ PlaybackThemePlaylistMScorecard>MWebhookC) Account.oho© Activity.phpC Address.php(C) AiPrompt.php(C) AutomatedReport.php© AutomatedReportResult.ph(C) Calendar.phpc) Callimport.php© CoachingFeedback.php© CoachingFeedbackVisibilit© CoachingSection.phpC) CoachinaSectionCriterion.rC) CoachinaSectionCriterionFC CoachingSectionFeedback© CommentAbstract.pngD Commentinterface.php(©) ReportController.phpJiminnyDeouecommana.ongcAutomatedRenorissenccommana.ongAulomaleakeporscommand.onoC AddLayoutEntities.phpC Team.phpC AutomatedReportsRepository.pnp© AutomatedReportsService.php© CreateHeldActivityEvent.phpe) Track?roviderinstalled-vent.ono© CreateActivityLoggedevent.php(©) UserPilotActivityListener.php©) ActivityLogged.phpC) AutomatedReportsCallbackService.php© RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeporJob.onoC AutomatedReportResult.php(e) AutomatedRenort.ohrclass RequestGenerateAskJ1minnyReportJob 1mplements ShouldQueue, ShouldBeUnique100101102103104105106ML0/I1081091110111112113114115116public function handlel1):return;"savedsearch = vauronareckedort-eravedsearchloIt (osavedsearch === nulb) 1nLoodere>varmnor seut.aLueracrie'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1);lecurisprompt = sautomatedReport->getAskAnythingPromptor1T (sprompt === nULU) 1s Logger->warningtselt::LU6_PREFLX•'Skipped, ask anything prompt not found', ['aucomatedkeporcuu1d = schis->reporcuuld,recurn,$this->reportResult = SreportService->createReportResult(automatedReport: sautomatedReport,data: L'status' => AutomatedReportResult::STATUS_DEFAULT,"medla_type => Automacedkeporcsservice:.REULA_TYPE_PUr.SactivitvIds = SactivitvService->getActivitvIdsForSavedSearch0savedSearch: SsavedSearch,user: $creator.):$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', ['automatedReportuuld' => sthis->reportuuld,activitycount = count(sactivitylas),1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {Sthis->failReport@ reason: AutomatedReportResult::REASON_NOT ENOUGH ACTIVTTIES):SLoqger->info(self::LOG_PREFIX .Not enough activities, skipped', l'automatedReportUuid' => $this->reportUuid,'activityCount" => count(Sactivitylds),1);Pecurtlda Support Daily • in 3 h 3 m100% [2Tue 14 Apr 11:57:47RequestGenerateAsk.liminnvRenort.lob Test v= custom.log= laravel.loge SF (iminny@localhostc HS_local fiminny@localhost)& console (PROD]& console (EU]L console (STAGINGC AskJiminnyReportActivityService.phpRequestGenerateaskyiminnykeportJoblest.pnpV2 21 лclass ASkJ1minnyReportActiv1tyservice3961626364private const 1nt DEFAULI_/UP_ACIIVLILES_COUNl = 100;private const array [ENV_SECRET] START DATE.ActivitvActualDate::PARAM END DATE.ActivityUpdatedDate::PARAM_UPDATED_FROMActivityUpdatedDate::PARAM_UPDATED_ TO,ClosingPeriodFilter::KEY_START DATE,ClosingPer1odr1lter::KEY_END_DATE,pubLic tunction -_constructprivate readonly Aculvitysearch sacuivitysearch,private readonly ElasticActivitykeposicory selasclckepository.orvare reaconuy Loocerinuertace "Lodder• 4...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint 1s applied - matching the behaviour of getcontextrorAskAnythingßyrilter.* @return string[] Activity IDs*/pubuic tunccion getAcuivity.asrorsavedsearchcsearch ssaveosearch.iuser nuser.0: array 4SrequestParams = Sthis->buildRequestParamsFromSearchSsavedSearch, Suser):Scriteria = Criteria::createFromRequestoarray_merge($requestParams, L'Limit' => seLf::DEFAULT_TOP_ACTIVITTES_COUNT, 'page' => 1J),suser->getlimezoneptilterser = suhls-›aculvitysearch->gecunbemandrager1ltersec(scriterla, suser)i$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger→>info('[AskJiminnyReport] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getido,'user id'= Suser->getido'activity_count' => count($activitylds),1):return sactivitvids.private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array(...}W Winasurt leams100:34uir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10769
|
|
10770
|
+SlackEDHomeDMsActivityFilesLater..•MoreFileEditVi +SlackEDHomeDMsActivityFilesLater..•MoreFileEditViewGoHistoryWindowHelp→+Jiminny ...# Starred8platform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea Dimitravo<Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+tnove ne tccioune chyirponormone nunpomопределен когато тествамеNikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan GeorgievAaSupport Daily - in 3 h 3 m100% <478Tue 14 Apr 11:57:48Fuune 4Today ~New...
|
NULL
|
NULL
|
NULL
|
10770
|
|
10771
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10771
|
|
10772
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10772
|
|
10773
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelp> 0→Search Jiminny IncJiminny ...Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev# Starredplatform-inner-teamMessagesAdd canvas+Phooa да тестоan АРусротораmone nunpomопределен когато тествамеChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Nikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщото• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea DimitravoCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaSupport Daily - in 3 h 2 m100% <478Tue 14 Apr 11:58:04Fuune 4Today ~New...
|
NULL
|
NULL
|
NULL
|
10773
|
|
10774
|
PhpStormFileEoitViewNavigateCodelaraveRefactonTool PhpStormFileEoitViewNavigateCodelaraveRefactonToolsWindowHelpFV faVsco.s v#11894 on JY-18909-automated-reports-ask-liminny k vProject v© DeviceRepository.phpC ElasticActivityRepository.p© EmailMessageRepository.p© GenericAiPromptRepositor© GroupRepository.php(C InboxEmailBatchRepositor)C InboxRepository.pnp© InvitationRepository.phpC) JobRepository.phpC) LanquageRepository.php© MomentRepository.phpNotificationRepository.phpC) ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.phpC PlavlistActivityRepository.p(© PlaylistRepository.png(C PlaylistShareRepository.phC) QuestionRepository.phpC) RoleChangeEventRepositolC RoleRepository.php© SearchRepository.phpC SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.(C) TaskRepository.phoC TeamAiContextRepository.©) TeamDomainsRepository.p(©) TeaminsightsRepository.phC) TeamRepository.phpC ThemeRepository.phpC TimezoneRepository.php© TopicRepository.php© TоpicTriggerRepository.ph© TrackRepository.phpC) TranscriptionModelLocaleF© TranscriptionRepository.prC) TranscriptionSummarvRepC UserRepository.php© VocabularyRepository.pnp› Rulesv D Services>D Activity>D AReportsAvatarcalendarM ConferenceM Crm>MImport> MInternalv → Kioskv _ AutomatedReports(C) ActivityTypeService.(©) AskJiminnyReportAc(C) AutomatedReportse(C) AutomatedReportsSc) ReportController.onpJiminnybeouecommana.ongC AutomatedReportsSendCommand.php© AutomatedReportsCommand.phpC AddLayoutEntities.phpC Team.phpC AutomatedReportsRepository.pnp© AutomatedReportsService.phpCreateHeldActivityEvent.phpe) TrackProvidernstallled-vent.ono© CreateActivityLoggedevent.php(©) UserPilotActivityListener.php©) ActivityLogged.phpC) AutomatedReportsCallbackService.php© RequestGenerateAskJiminnyReportJob.phpRequestGeneratekeporJob.onoC AutomatedReportResult.php(e) AutomatedRenort.ohrclass RequestGenerateAskJ1minnyReportJob 1mplements ShouldQueue, ShouldBeUnique818283100101102103104105106ML0/I1081091110111112113114115116public function handlel1):Tecurtin"savedsearch = vauronareckedort-eravedsearchloif (SsavedSearch === null) &+Logger->warninglselt..Luo_PkErLX'Skipped, saved search not found', ['automatedReportUuid' => Sthis-›reportUuid1):lecurisprompt = sautomatedReport->getAskAnythingPrompton1T (sprompt === nULU) 1$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', ['aucomatedkeporcuuld = suhis->reporcuuld,recurn,$this->reportResult = SreportService->createReportResult(automatedReport: sautomatedReport,data: L'status' => AutomatedReportresult::STATUS_DEFAULT,"medla_type => Automacedkeporcsservice:.REULA_TYPE_PUr.SactivitvIds = SactivitvService->getActivitvIdsForSavedSearch0savedSearch: SsavedSearch,user: $creator.):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs', ['automatedReportuuld' => sthis->reportuuld,activitycount = count(pactivitylas).1):if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {Sthis->failReport@ reason: AutomatedReportResult::REASON_NOT ENOUGH ACTIVTTIES):SLoqger->info(self::LOG_PREFIX .Not enough activities, skipped', l'automatedReportUuid' => $this->reportUvid,'activityCount" => count(Sactivitylds),1);PecurtldWinasurt changelog 2.12.21: A new version is avallable. # View Changelog (today 10:33,50 lalaSupport Daily • in 3h 2 m100% [Tue 14 Apr 11:58:04• RequestGenerateAskJiminnyReportJobTest v= custom.log= laravel.lode SF (iminny@localhostc HS_local fiminny@localhost)& console (PROD]& console (EU]L console (STAGINGC AskJiminnyReportActivityService.phpRequestGenerateaskJiminnykeportJoblest.pnpV2 21 лclass ASKJ1minnyReportAct1v1tyService39616263private const 1nt DEFAULI_TUP_ACIIVLILES_COUNI = 100;private const array [ENV_SECRET] START DATE.ActivitvActualDate::PARAM END DATE.ActivityUpdatedDate::PARAM_UPDATED_FROMActivityUpdatedDate::PARAM_UPDATED_ TO,ClosingPeriodFilter::KEY_START DATE,ClosingPer1odr1lter::KEY_END_DATE,pubLic tunction -_constructprivate readonly Aculvicysearch sacuivitysearch,private readonly ElasticActivitykeposicory selasclckepository.orvare reaconuy Loocerinuertace "Lodder• 4...3* Fetch activity IDs for a saved search, passing its filters as-is to Criteria* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint 1s applied - matching the behaviour of getcontextrorAskAnythingßyrilter.* @return string[] Activity IDspubuic tunccion getAcuivity.asrorsavedsearchcsearch ssaveosearch.iuser nuser.0: array 4$requestParams = Sthis->buildRequestParamsFromSearchSsavedSearch, Suser):$criteria = Criteria::createFromkeqestcarray_merge($requestParams, L'Limit' => seLf::DEFAULT_TOP_ACTIVITTES_COUNT, 'page' => 1J),suser->getlimezoneptilterser = suhls-›aculvitysearch-›gecunbemandrageriltersec(scriterla, suser))$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getido,'user id'=> Suser->getido'activity_count' => count($activitylds),1):return sactivitvids.private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array(...}w windsurt leams40:43uir-oia 4 spaces...
|
NULL
|
NULL
|
NULL
|
10774
|
|
10775
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelp> 0→Search Jiminny IncJiminny ...Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev# Starredplatform-inner-teamMessagesAdd canvas+Phooa да тестоan АРусротораmone nunpomопределен когато тествамеChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Nikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщото• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea DimitravoCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaSupport Daily - in 3 h 2 m100% C48Tue 14 Apr 11:58:06Fuune 4Today ~New...
|
NULL
|
NULL
|
NULL
|
10775
|
|
10776
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10776
|
|
10777
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelp> 0→Search Jiminny IncJiminny ...Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev# Starredplatform-inner-teamMessagesAdd canvas+Phooa да тестоan АРусротораmone nunpomопределен когато тествамеChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Nikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщото• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea DimitravoCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaSupport Daily - in 3 h 2 m100% C48Tue 14 Apr 11:58:09Fuune 4Today ~New...
|
NULL
|
NULL
|
NULL
|
10777
|
|
10778
|
PhpStormFileEditFV faVsco.js vViewNavigateCodeLara PhpStormFileEditFV faVsco.js vViewNavigateCodeLaravelRefactor#11894 on JY-18909-automated-reports-ask-iminny K vToolsWindowHelpProjectv© DeviceRepository.php© ElasticActivityRepository.pl© EmailMessageRepository.p© GenericAiPromptRepositor:© GroupRepository.php(C) InboxEmailBatchRepositon)InboxRepository.php© InvitationRepository.php© JobRepository.php© LanguageRepository.php© MomentRepository.php© NotificationRepository.php© ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.php® PlaylistActivityRepository.fPlaylistRepository.phpPlaylistShareRepository.ph© QuestionRepository.php© RoleChangeEventRepositor© RoleRepository.php© SearchRepository.php© SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.TaskRepository.php© TeamAiContextRepository.TeamDomainsRepository.p©TeamInsightsRepository.pt©TeamRepository.php©ThemeRepository.php© TimezoneRepository.php© TopicRepository.php© TopicTriggerRepository.ph© TrackRepository.php© TranscriptionModelLocaleF© TranscriptionRepository.phC) TranscriptionSummarvRep© UserRepository.php© VocabularyRepository.pnp> D Rulesv D Services> [ Activity> C AjReportsDAvatarcalendarD ConferenceD Crm>MImport> MInternalv D Kioskv _ AutomatedReports© ActivityTypeService.© AskJiminnyReportAc© AutomatedReportsCi© AutomatedReportsSt© ReportController.php© JiminnyDebugCommand.php© AutomatedReportsSendCommand.phpC AutomatedReportsCommand.php© AddLayoutEntities.php© Team.phpAutomaleakeporsservice.ong© AutomatedReportsRepository.php© CreateHeldActivityEvent.php© TrackProviderInstalledEvent.phpCrealeAcuivilyLogqedbvent.ono(C) User?llorActivivuistener.ohn© ActivityLogged.phpc) AutomatedRenorscalloackoerwce.onv© RequestGenerateAskJiminnyReportJob.php x(©) RequestGenerateReportJob.php(C) AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJiminnyReportJob implements opublic function handle(1):У3 ^v,258486878889100101102103104105106107110111.112return;ssavedsearcn = pautomatedkeport->gecsavedsearcnohif (SsavedSearch === null) &sLogger->warnangtsecr..Luo_Pkeria • Skipped, Saved $36'automatedReportUuid' = $this->reportUvid,1):lecurlin$prompt = $automatedReport->getAskAnythingPrompt();if ($prompt === null) {$logger->warning(self::LOG_PREFIX . ' Skipped, ask an45aucomatedkeporcuuld = suhis->reporcuula,1);recurny$this->reportResult = $reportService->createReportResult(automatedReport: $automatedReport,data: ['status' => AutomatedReportResult::STATUS_DEFAULT,'media_type' => AutomatedReportsService::MEDIA_TVF56SactivityIds = $activityService->getActivityIdsForSavedSe& 60savedSearch: $savedSearch,user: $creator,):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs','automatedReportUvid' = $this->reportUvid,'activityCount' => count($activityIds),I);if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {nuns->rau uredor reason. Aurolareckeportresult..kcAsul$logger->info(self::LOG_PREFIX .' Not enough activit:'automatedReportUuid' => $this->reportUvid,Windsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)= custom.log4 console [EUl= laravel.logA SF [jiminny@localhost]A HS_local [jiminny@localhost]console SlAGING© AskJiminnyReportActivityService.php xA console [PROD]© RequestGenerateAskJiminnyReportJobTest.phpN2R1 A Yclass AskJiminnyReportActivityServiceprivate const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ActivityActualDate::PARAM_END_DATE,ActivityUpdatedDate::PARAM_UPDATED_FROM,ActivityUpdatedDate: :PARAM_UPDATED_TO,ClosingPeriodFilter::KEY_START_DATE,ClosingPeriodFilter::KEY_END_DATE,public function __construct(private readonly ActivitySearch $activitySearch,private readonly ElasticActivityRepository $elasticRepository,orvare reaconuy Loccerinuertace "Lodder) 1...3/*** Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnythingByFilter.* Oreturn string[] Activity IDspubLic tuncuion gecAculvity-asrorsavedsearcneSearch SsavedSearch,user puser.): array {$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);$criteria = Criteria::createFromRequest(array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),$user->getTimezone()ptilterset = suhls-›aculvitysearch-›gecunbemandrageriltersec(scriterla, suser):$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger→>info('[AsKLiminnxReRQrt] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getId(),'user_id' => $user-›getId(),'activity_count' => count($activityIds),1):return $activityIds;private function buildRequestParamsFromSearch(Search $savedSearch, User $user): arrayf...}j Support Daily • in 3h 2mAL RequestGenerateAskJiminnyReportJobTest v100% C•Tue 14 Apr 11:58:13CascadeFixing ReportControlle• Automated Report N• Automated Report L+D ...3. Activity fetch — [AskJiminnyReport] (from AskJiminnyReportActivityService)[AskJiminnyReport] Fetched activity IDs for saved searchSavea search lo user lo aculvity countunen immealalely aner in tne od[AskJiminnyReport:Generatel Fetched activity IDsauconacedkeporcuuld, actlvicycount4a. Failure path (< 1 activity):LAskJiminnyReport:Generatel Not enough activities, skippecautomatedReportUuid, activityCountThe AutomatedReportResult gets status=failed, reason=REASON_NOT_ENOUGH_ACTIVITIES.4b. Error path (exception):[AskJiminnyReport:Generatel ErrorautomatedReportUuid, reportUuid, code, messageWhat's missing for debuggingThe logs tell you count but not which filters were applied from the saved search. When a report fails with 0activities, you can't see why - what the saved search filters were, what date range was used, or what requestParams were bulltTwo gaps:1. AskJiminnyReportActivityService - the requestParams built from the saved search are not logged (only acalvity count2. RequestGenerateAskJiminnyReportJob - payload is only logged at "Request sent" (line 132-136), which isafter the activity count gate - so if we fail at count check, we never see the payloadIcan add loaaina to expose the apolied filters and the actual activity IDs when the count is low. Want me to addthat?Askino •uestion• What would you like to improve?What would you like to improve?Loo tne aoolee Tters recuestrarams)rrom the saveo searchAdd filter params to the existing log in AskJiminnyReportActivityService so you can see exactly what filters wereusea wnen u acuvilles are returneeLog actuapactivity IDs when count is lowAlso log the activity IDs themselves (not just the count) so you can inspect which specific calls were or weren'tInc udedbolLog filters + activity IDs in AskJiminnyReportActivityServicepther answer+ <> CodeClaude Sonnet 4.6Skipwinasun leams48:40uir-o( 4 spaces...
|
NULL
|
NULL
|
NULL
|
10778
|
|
10779
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelp> 0→Search Jiminny IncJiminny ...Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev# Starredplatform-inner-teamMessagesAdd canvas+Phooa да тестоan АРусротораmone nunpomопределен когато тествамеChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Nikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщото• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea DimitravoCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaSupport Daily - in 3 h 2 m100% C48Tue 14 Apr 11:58:19Fuune 4Today ~New...
|
NULL
|
NULL
|
NULL
|
10779
|
|
10780
|
PhpStormFileEditFV faVsco.js vViewNavigateCodeLara PhpStormFileEditFV faVsco.js vViewNavigateCodeLaravelRefactor#11894 on JY-18909-automated-reports-ask-iminny K vToolsWindowHelpProjectv© DeviceRepository.php© ElasticActivityRepository.pl© EmailMessageRepository.p© GenericAiPromptRepositor:© GroupRepository.php(C) InboxEmailBatchRepositon)InboxRepository.php© InvitationRepository.php© JobRepository.php© LanguageRepository.php© MomentRepository.php© NotificationRepository.php© ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.php® PlaylistActivityRepository.fPlaylistRepository.phpPlaylistShareRepository.ph© QuestionRepository.php© RoleChangeEventRepositor© RoleRepository.php© SearchRepository.php© SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.TaskRepository.php© TeamAiContextRepository.TeamDomainsRepository.p©TeamInsightsRepository.pt©TeamRepository.php©ThemeRepository.php© TimezoneRepository.php© TopicRepository.php© TopicTriggerRepository.ph© TrackRepository.php© TranscriptionModelLocaleF© TranscriptionRepository.phC) TranscriptionSummarvRep© UserRepository.php© VocabularyRepository.pnp> D Rulesv D Services> [ Activity> C AjReportsDAvatarcalendarD ConferenceD Crm>MImport> MInternalv D Kioskv _ AutomatedReports© ActivityTypeService.© AskJiminnyReportAc© AutomatedReportsCi© AutomatedReportsSt© ReportController.php© JiminnyDebugCommand.php© AutomatedReportsSendCommand.phpC AutomatedReportsCommand.php© AddLayoutEntities.php© Team.phpAutomaleakeporsservice.ong© AutomatedReportsRepository.php© CreateHeldActivityEvent.php© TrackProviderInstalledEvent.phpCrealeAcuivilyLogqedbvent.ono(C) User?llorActivivuistener.ohn© ActivityLogged.phpc) AutomatedRenorscalloackoerwce.onv© RequestGenerateAskJiminnyReportJob.php x(©) RequestGenerateReportJob.php(C) AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJiminnyReportJob implements opublic function handle(1):У3 ^v,258486878889100101102103104105106107110111.112return;ssavedsearcn = pautomatedkeport->gecsavedsearcnohif (SsavedSearch === null) &sLogger->warnangtsecr..Luo_Pkeria • Skipped, Saved $36'automatedReportUuid' = $this->reportUvid,1):lecurlin$prompt = $automatedReport->getAskAnythingPrompt();if ($prompt === null) {$logger->warning(self::LOG_PREFIX . ' Skipped, ask an45aucomatedkeporcuuld = suhis->reporcuula,1);recurny$this->reportResult = $reportService->createReportResult(automatedReport: $automatedReport,data: ['status' => AutomatedReportResult::STATUS_DEFAULT,'media_type' => AutomatedReportsService::MEDIA_TVF56SactivityIds = $activityService->getActivityIdsForSavedSe& 60savedSearch: $savedSearch,user: $creator,):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs','automatedReportUvid' = $this->reportUvid,'activityCount' => count($activityIds),I);if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {nuns->rau uredor reason. Aurolareckeportresult..kcAsul$logger->info(self::LOG_PREFIX .' Not enough activit:'automatedReportUuid' => $this->reportUvid,Windsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)= custom.log4 console [EUl= laravel.logA SF [jiminny@localhost]A HS_local [jiminny@localhost]console SlAGING© AskJiminnyReportActivityService.php xA console [PROD]© RequestGenerateAskJiminnyReportJobTest.phpN2R1 A Yclass AskJiminnyReportActivityServiceprivate const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ActivityActualDate::PARAM_END_DATE,ActivityUpdatedDate::PARAM_UPDATED_FROM,ActivityUpdatedDate: :PARAM_UPDATED_TO,ClosingPeriodFilter::KEY_START_DATE,ClosingPeriodFilter::KEY_END_DATE,public function __construct(private readonly ActivitySearch $activitySearch,private readonly ElasticActivityRepository $elasticRepository,orvare reaconuy Loccerinuertace "Lodder) 1...3/*** Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnythingByFilter.* Oreturn string[] Activity IDspubLic tuncuion gecAculvity-asrorsavedsearcneSearch SsavedSearch,user puser.): array {$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);$criteria = Criteria::createFromRequest(array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),$user->getTimezone()ptilterset = suhls-›aculvitysearch-›gecunbemandrageriltersec(scriterla, suser):$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger→>info('[AsKLiminnxReRQrt] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getId(),'user_id' => $user-›getId(),'activity_count' => count($activityIds),1):return $activityIds;private function buildRequestParamsFromSearch(Search $savedSearch, User $user): arrayf...}j Support Daily • in 3h 2mAL RequestGenerateAskJiminnyReportJobTest v100% C•Tue 14 Apr 11:58:19CascadeFixing ReportControlle• Automated Report N• Automated Report L+D ...3. Activity fetch — [AskJiminnyReport] (from AskJiminnyReportActivityService)[AskJiminnyReport] Fetched activity IDs for saved searchSavea search lo user lo aculvity countunen immealalely aner in tne od[AskJiminnyReport:Generatel Fetched activity IDsauconacedkeporcuuld, actlvicycount4a. Failure path (< 1 activity):LAskJiminnyReport:Generatel Not enough activities, skippecautomatedReportUuid, activityCountThe AutomatedReportResult gets status=failed, reason=REASON_NOT_ENOUGH_ACTIVITIES.4b. Error path (exception):[AskJiminnyReport:Generatel ErrorautomatedReportUuid, reportUuid, code, messageWhat's missing for debuggingThe logs tell you count but not which filters were applied from the saved search. When a report fails with 0activities, you can't see why - what the saved search filters were, what date range was used, or what requestParams were bulltTwo gaps:1. AskJiminnyReportActivityService - the requestParams built from the saved search are not logged (only acalvity count2. RequestGenerateAskJiminnyReportJob - payload is only logged at "Request sent" (line 132-136), which isafter the activity count gate - so if we fail at count check, we never see the payloadIcan add loaaina to expose the apolied filters and the actual activity IDs when the count is low. Want me to addthat?Askino •uestion• What would you like to improve?What would you like to improve?Loo tne aoolee Tters recuestrarams)rrom the saveo searchAdd filter params to the existing log in AskJiminnyReportActivityService so you can see exactly what filters wereusea wnen u acuvilles are returneeLog actual activity IDs when count is lowAlso log the activity IDs themselves (not just the count) so you can inspect which specific calls were or weren'tInc ludedbolLog filters + activity IDs in AskJiminnyReportActivityServiceother answ+ <> CodeClaude Sonnet 4.6Skipwinasun leams48:40uir-o( 4 spaces...
|
NULL
|
NULL
|
NULL
|
10780
|
|
10781
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10781
|
|
10782
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10782
|
|
10783
|
PhpStormFileEditViewNavigateCodeLaravelRefactorFV PhpStormFileEditViewNavigateCodeLaravelRefactorFV faVsco.s v#11894 on JY-18909-automated-reports-ask-iminny K vToolsWindowHelpProjectv© DeviceRepository.php© ElasticActivityRepository.pl© EmailMessageRepository.p© GenericAiPromptRepositor:© GroupRepository.php(C) InboxEmailBatchRepositon)InboxRepository.php© InvitationRepository.php© JobRepository.php© LanguageRepository.php© MomentRepository.php© NotificationRepository.php© ParticipantRepository.php© ParticipantSpeechReposito© ParticipantStatsRepository© PlaybookCategoryRepositc© PlaybookRepository.php® PlaylistActivityRepository.fPlaylistRepository.phpPlaylistShareRepository.ph© QuestionRepository.php© RoleChangeEventRepositor© RoleRepository.php© SearchRepository.php© SnapshotRepository.php© SocialAccountRepository.p© StageRepository.php© SubscriptionSetRepository.TaskRepository.php© TeamAiContextRepository.TeamDomainsRepository.p©TeamInsightsRepository.pt©TeamRepository.php©ThemeRepository.php© TimezoneRepository.php© TopicRepository.php© TopicTriggerRepository.ph© TrackRepository.php© TranscriptionModelLocaleF© TranscriptionRepository.phC) TranscriptionSummarvRep© UserRepository.php© VocabularyRepository.pnp> D Rulesv D Services> [ Activity> D AjReports(J AvatarcalendarD ConferenceD Crm>MImport> MInternalv D Kioskv _ AutomatedReports© ActivityTypeService.© AskJiminnyReportAc© AutomatedReportsCi© AutomatedReportsSt© ReportController.php© JiminnyDebugCommand.php© AutomatedReportsSendCommand.phpC AutomatedReportsCommand.php© AddLayoutEntities.php© Team.phpAutomaleakeporsserwice.ong© AutomatedReportsRepository.php© CreateHeldActivityEvent.php© TrackProviderInstalledEvent.phpCrealeAcuivilyLogqedbvent.ono(C) User?llorActvtvuistener.ono© ActivityLogged.phpc) AutomatedRenorscalloackoerwce.onv© RequestGenerateAskJiminnyReportJob.php x(©) RequestGenerateReportJob.php(C) AutomatedReportResult.php© AutomatedReport.phpclass RequestGenerateAskJiminnyReportJob implements opublic function handle(1):У3 ^v,258486878889100101102103104105106107110111.112return;ssavedsearcn = pautomatedkeport->gecsavedsearcnohif (SsavedSearch === null) &sLogger->warnangtsecr..Luo_Pkeria • Skipped, Saved $36'automatedReportUuid' = $this->reportUvid,1):lecurlin$prompt = $automatedReport->getAskAnythingPrompt();if ($prompt === null) {$logger->warning(self::LOG_PREFIX . ' Skipped, ask an45'aucomatedkeporcuu1d = schis->reporcuuld,1);recurny$this->reportResult = $reportService->createReportResult(autona tedReport: SautonatedRepontdata: ['status' => AutomatedReportResult::STATUS_DEFAULT,'media_type' => AutomatedReportsService::MEDIA_TVF56SactivityIds = $activityService->getActivityIdsForSavedSe& 60savedSearch: SsavedSearch,user: $creator,):$logger→>info(self::LOG_PREFIX . ' Fetched activity IDs','automatedReportUvid' = $this->reportUvid,'activityCount' => count($activityIds),I);if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {Sthis->failReport@ reason: AutomatedReportResult::REASOI$logger->info(self::LOG_PREFIX .' Not enough activit:'automatedReportUuid' => $this->reportUvid,Windsurf changelog 2.12.21: A new version is available. // View Changelog (today 10:33)= custom.log4 console [EUl= laravel.logA SF [jiminny@localhost]A HS_local [jiminny@localhost]console SIAGING© AskJiminnyReportActivityService.php xA console [PROD]© RequestGenerateAskJiminnyReportJobTest.phpN221A Yclass AskJiminnyReportActivityServiceprivate const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;private const array [ENV_SECRET],ActivityActualDate::PARAM_END_DATE,ActivityUpdatedDate::PARAM_UPDATED_FROM,ActivityUpdatedDate: :PARAM_UPDATED_TO,ClosingPeriodFilter::KEY_START_DATE,ClosingPeriodFilter::KEY_END_DATE,public function __construct(private readonly ActivitySearch $activitySearch,private readonly ElasticActivityRepository $elasticRepository,orvare reaconuy Loccerinuertace "Lodder) 4...3/*** Fetch activity IDs for a saved search, passing its filters as-is to Criteria.* Date filters stored on the saved search are excluded; if no other filters exist,* no date constraint is applied - matching the behaviour of getContextForAskAnythingByFilter.* Oreturn string[] Activity IDspubLic tuncuion gecAculvity-asrorsavedsearcneSearch SsavedSearch,user puser.): array {$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);$criteria = Criteria::createFromRequest(array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),$user->getTimezone()ptilterser = schis-›aculvitysearch->gecunbemandrager1ltersec(scriter1a, suser:$activityIds = $this->elasticRepository->onDemandSearchIds0nly($user, $criteria, $filterSet);$this->logger→>info('[AsKLiminnxReRQrt] Fetched activity IDs for saved search', ['saved_search_id' => $savedSearch->getId(),'user_id' => $user-›getId(),'activity_count' => count($activityIds),1):return $activityIds;private function buildRequestParamsFromSearch(Search $savedSearch, User $user): arrayf...}j Support Daily • in 3h 2mAL RequestGenerateAskJiminnyReportJobTest v100% C•Tue 14 Apr 11:58:55CascadeFixing ReportControlle• Automated Report N• Automated Report L+D ...3. Activity fetch — [AskJiminnyReport] (from AskJiminnyReportActivityService)[AskJiminnyReport] Fetched activity IDs for saved searchSavea search lo user lo aculvity countunen immealalely aner in tne od[AskJiminnyReport:Generatel Fetched activity IDsauconacedkeporcuuld, actlvicycount4a. Failure path (< 1 activity):LAskJiminnyReport:Generatel Not enough activities, skippecautomatedReportUuid, activityCountThe AutomatedReportResult gets status=failed, reason=REASON_NOT_ENOUGH_ACTIVITIES.4b. Error path (exception):[AskJiminnyReport:Generatel ErrorautomatedReportUuid, reportUuid, code, messageWhat's missing for debuggingThe logs tell you count but not which filters were applied from the saved search. When a report fails with 0activities, you can't see why - what the saved search filters were, what date range was used, or what requestParams were bulltTwo gaps:1. AskJiminnyReportActivityService - the requestParams built from the saved search are not logged (only acalvity count2. RequestGenerateAskJiminnyReportJob - payload is only logged at "Request sent" (line 132-136), which isafter the activity count gate - so if we fail at count check, we never see the payloadIcan add loaaina to expose the apolied filters and the actual activity IDs when the count is low. Want me to addthat?Askino •uestion• What would you like to improve?What would you like to improve?SkipLoo tne aoolee Tters recuestrarams)rrom the saveo searchAdd filter params to the existing log in AskJiminnyReportActivityService so you can see exactly what filters wereusea wnen u acuvilles are returneeLog actual activity IDs when count is lowAlso log the activity IDs themselves (not just the count) so you can inspect which specific calls were or weren'tInc ludedbolLog filters + activity IDs in AskJiminnyReportActivityServiceActually I see that activities in on demand using the same filter returs some activities. Where is it? But in+ <> Code Claude Sonnet 4.6winasun leams48:40uir-o( 4 spaces...
|
NULL
|
NULL
|
NULL
|
10783
|
|
10784
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelp> 0Jiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Phooa да тестоan АРусротораmone nunpomопределен когато тествамеNikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaSupport Daily - in 3 h 2 m100% C48Tue 14 Apr 11:58:56Fuune 4Today ~New...
|
NULL
|
NULL
|
NULL
|
10784
|
|
10785
|
Project: faVsco.js, menu
#11894 on JY-18909-automa Project: faVsco.js, menu
#11894 on JY-18909-automated-reports-ask-jiminny, menu
Start Listening for PHP Debug Connections
RequestGenerateAskJiminnyReportJobTest
Run 'RequestGenerateAskJiminnyReportJobTest'
Debug 'RequestGenerateAskJiminnyReportJobTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
3
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Jobs\AutomatedReports;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Jiminny\Component\ProphetAi\Exceptions\ProphetException;
use Jiminny\Component\ProphetAi\ProphetClient;
use Jiminny\Component\Queue\Constants;
use Jiminny\Models\AutomatedReport;
use Jiminny\Models\AutomatedReportResult;
use Jiminny\Models\Team;
use Jiminny\Services\Kiosk\AutomatedReports\AskJiminnyReportActivityService;
use Jiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;
use Psr\Log\LoggerInterface;
use Throwable;
class RequestGenerateAskJiminnyReportJob implements ShouldQueue, ShouldBeUnique
{
use InteractsWithQueue;
use Queueable;
private const string LOG_PREFIX = '[AskJiminnyReport:Generate]';
private const int MIN_ACTIVITIES_COUNT = 1;
public int $tries = 2;
private ?AutomatedReportResult $reportResult = null;
public function __construct(private readonly string $reportUuid)
{
$this->onQueue(Constants::QUEUE_ANALYTICS);
}
public function uniqueId(): string
{
return $this->reportUuid;
}
public function handle(
AutomatedReportsService $reportService,
AskJiminnyReportActivityService $activityService,
ProphetClient $prophetClient,
LoggerInterface $logger,
): void {
$logger->info(self::LOG_PREFIX . ' Started', [
'automatedReportUuid' => $this->reportUuid,
]);
try {
$automatedReport = $reportService->getReport($this->reportUuid);
if (! $this->validateReport($automatedReport, $logger)) {
return;
}
$creator = $automatedReport->getCreator();
if ($creator === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, report creator not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$savedSearch = $automatedReport->getSavedSearch();
if ($savedSearch === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, saved search not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$prompt = $automatedReport->getAskAnythingPrompt();
if ($prompt === null) {
$logger->warning(self::LOG_PREFIX . ' Skipped, ask anything prompt not found', [
'automatedReportUuid' => $this->reportUuid,
]);
return;
}
$this->reportResult = $reportService->createReportResult(
automatedReport: $automatedReport,
data: [
'status' => AutomatedReportResult::STATUS_DEFAULT,
'media_type' => AutomatedReportsService::MEDIA_TYPE_PDF,
]
);
$activityIds = $activityService->getActivityIdsForSavedSearch(
savedSearch: $savedSearch,
user: $creator,
);
$logger->info(self::LOG_PREFIX . ' Fetched activity IDs', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
if (count($activityIds) < self::MIN_ACTIVITIES_COUNT) {
$this->failReport(AutomatedReportResult::REASON_NOT_ENOUGH_ACTIVITIES);
$logger->info(self::LOG_PREFIX . ' Not enough activities, skipped', [
'automatedReportUuid' => $this->reportUuid,
'activityCount' => count($activityIds),
]);
return;
}
$payload = $reportService->getAskJiminnyGenerateReportPayload(
automatedReport: $automatedReport,
reportResult: $this->reportResult,
activityIds: $activityIds,
);
$this->reportResult->update([
'name' => $reportService->getReportFileName($this->reportResult),
'payload' => $payload,
'status' => AutomatedReportResult::STATUS_REQUESTED,
'requested_at' => Carbon::now()->toDateTimeString(),
]);
$logger->info(self::LOG_PREFIX . ' Request sent', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult->getUuid(),
'payload' => $payload,
]);
$response = $prophetClient->sendRequest(
endpoint: ProphetClient::ASK_JIMINNY_REPORT,
requestArray: $payload,
);
$logger->info(self::LOG_PREFIX . ' Response received', [
'response' => $response->getContent(),
]);
} catch (Throwable $exception) {
$reason = $exception instanceof ProphetException
? AutomatedReportResult::REASON_PROPHET_API_ERROR
: AutomatedReportResult::REASON_DEFAULT;
$this->failReport($reason);
$logger->error(self::LOG_PREFIX . ' Error', [
'automatedReportUuid' => $this->reportUuid,
'reportUuid' => $this->reportResult?->getUuid(),
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
]);
if ($this->attempts() < $this->tries) {
$logger->info(self::LOG_PREFIX . ' Retry scheduled', [
'attempts' => $this->attempts(),
]);
$this->release(30);
} else {
$this->fail($exception);
}
}
}
private function validateReport(AutomatedReport $automatedReport, LoggerInterface $logger): bool
{
if ($automatedReport->getType() !== AutomatedReportsService::TYPE_ASK_JIMINNY) {
$logger->warning(self::LOG_PREFIX . ' Skipped, not an ask_jiminny report', [
'automatedReportUuid' => $this->reportUuid,
'type' => $automatedReport->getType(),
]);
return false;
}
if (! $automatedReport->getStatus()) {
$logger->info(self::LOG_PREFIX . ' Skipped, report is not active', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
if ($automatedReport->getTeam()->getStatus() !== Team::STATUS_ACTIVE) {
$logger->info(self::LOG_PREFIX . ' Skipped, team is inactive', [
'automatedReportUuid' => $this->reportUuid,
]);
return false;
}
return true;
}
private function failReport(int $reason): void
{
$this->reportResult?->update([
'status' => AutomatedReportResult::STATUS_FAILED,
'reason' => $reason,
]);
}
}
Sync Changes
Hide This Notification
Code changed:
Hide
2
1
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Services\Kiosk\AutomatedReports;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityActualDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\ActivityUpdatedDate;
use Jiminny\Component\ActivitySearch\FilterDefinition\DealInsights\ClosingPeriodFilter;
use Jiminny\Component\ActivitySearch\Service\ActivitySearch;
use Jiminny\Models\Activity\Search;
use Jiminny\Models\User;
use Jiminny\Repositories\ElasticActivityRepository;
use Jiminny\VO\Repository\OnDemandActivitySearch\Criteria;
use Psr\Log\LoggerInterface;
class AskJiminnyReportActivityService
{
private const int DEFAULT_TOP_ACTIVITIES_COUNT = 100;
private const array DATE_FILTER_KEYS = [
ActivityActualDate::PARAM_START_DATE,
ActivityActualDate::PARAM_END_DATE,
ActivityUpdatedDate::PARAM_UPDATED_FROM,
ActivityUpdatedDate::PARAM_UPDATED_TO,
ClosingPeriodFilter::KEY_START_DATE,
ClosingPeriodFilter::KEY_END_DATE,
];
public function __construct(
private readonly ActivitySearch $activitySearch,
private readonly ElasticActivityRepository $elasticRepository,
private readonly LoggerInterface $logger,
) {
}
/**
* Fetch activity IDs for a saved search, passing its filters as-is to Criteria.
* Date filters stored on the saved search are excluded; if no other filters exist,
* no date constraint is applied — matching the behaviour of getContextForAskAnythingByFilter.
*
* @return string[] Activity IDs
*/
public function getActivityIdsForSavedSearch(
Search $savedSearch,
User $user,
): array {
$requestParams = $this->buildRequestParamsFromSearch($savedSearch, $user);
$criteria = Criteria::createFromRequest(
array_merge($requestParams, ['limit' => self::DEFAULT_TOP_ACTIVITIES_COUNT, 'page' => 1]),
$user->getTimezone()
);
$filterSet = $this->activitySearch->getOnDemandPageFilterSet($criteria, $user);
$activityIds = $this->elasticRepository->onDemandSearchIdsOnly($user, $criteria, $filterSet);
$this->logger->info('[AskJiminnyReport] Fetched activity IDs for saved search', [
'saved_search_id' => $savedSearch->getId(),
'user_id' => $user->getId(),
'activity_count' => count($activityIds),
]);
return $activityIds;
}
private function buildRequestParamsFromSearch(Search $savedSearch, User $user): array
{
$params = [];
$arrayFilterKeys = $this->activitySearch->getArrayFilterKeys($user);
foreach ($savedSearch->getFilters() as $filter) {
$key = $filter->getFilterProperty();
$value = $filter->getFilterValue();
if (in_array($key, self::DATE_FILTER_KEYS, true)) {
continue;
}
if (isset($params[$key])) {
$params[$key][] = $value;
} elseif (in_array($key, $arrayFilterKeys, true)) {
$params[$key] = [$value];
} else {
$params[$key] = $value;
}
}
return $params;
}
}
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
PhpStorm
|
faVsco.js – AskJiminnyReportActivityService.php
|
NULL
|
10785
|
|
10786
|
+SlackEDHomeDMSActivityFilesLater..•More+FileEditV +SlackEDHomeDMSActivityFilesLater..•More+FileEditViewGoHistoryWindowHelp> 0Jiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea Dimitravo→Search Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Phooa да тестоan АРусротораmone nunpomопределен когато тествамеNikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaSupport Daily - in 3 h 2 m100% C48Tue 14 Apr 11:58:57Fuune 4Today ~New...
|
NULL
|
NULL
|
NULL
|
10786
|
|
10787
|
+SlackFileEditViewGoEDHomeDMSActivityFilesHistoryW +SlackFileEditViewGoEDHomeDMSActivityFilesHistoryWindowHelp→Jiminny ...sos* Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_labSearch Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+Tnowe nutccloune cryirpenorопределен когато тествамеune GuTrNikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMSupport Daily - in 3 h 1 m100% CTue 14 Apr 11:59:09QTodayPS$1(wll+Firefox# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..Direct messages(3Aneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea Dimitravoвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосЪщотоCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+ Aa ® ®New...
|
NULL
|
NULL
|
NULL
|
10787
|
|
10788
|
CloudWatch | us-east-2
us-east-2.console.aws.amazo CloudWatch | us-east-2
us-east-2.console.aws.amazon.com
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Console Home | Console Home | us-east-2
Console Home | Console Home | us-east-2
SecurityGroup | EC2 | us-east-2
SecurityGroup | EC2 | us-east-2
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jiminny
Jiminny
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
New Tab
New Tab
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AWS Console Home
Skip to Main Content
Skip to Main Content
Amazon Q
Services
Search
Ask Amazon Q
[Option+S]
CloudShell
Notifications (none available)
Help & support
Settings
United States (Ohio)
United States (Ohio)
STAGE
Account ID: 4387-4037-0364
STAGE
EC2 EC2
EC2
Elastic Container Service Elastic Container Service
Elastic Container Service
S3 S3
S3
CodeDeploy CodeDeploy
CodeDeploy
CloudWatch CloudWatch
CloudWatch
ElastiCache ElastiCache...
|
Firefox
|
CloudWatch | us-east-2 — Work
|
us-east-2.console.aws.amazon.com/cloudwatch/home?r us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logsV2:logs-insights$3FqueryDetail$3D~(end~0~start~-3600~timeType~'RELATIVE~tz~'UTC~unit~'seconds~editorString~'fields*20*40timestamp*2c*20*40message*2c*20*40logStream*2c*20*40log*0a*7c*20filter*20*40message*20like*20*22*5bAskJiminnyReport*3aGenerate*5d*22*20*0a*7c*20filter*20*40message*20not*20like*20*2fAnalytic*2f*20*7c*20filter*20*40message*20not*20like*20*2fTranscript*2f*0a*7c*20filter*20*40message*20not*20like*20*2fWebhook*2f*20*7c*20filter*20*40message*20not*20like*20*2fMeetingBot*2f*20*0a*7c*20limit*2010000~queryId~'0551e814-f51a-4339-8372-80d7ba4cef27~source~(~'*2a)~lang~'CWLI~logClass~'STANDARD~accountIDs~(~'All)~queryBy~'allLogGroups)...
|
10788
|
|
10789
|
Jiminny
app.staging.jiminny.com
JY-20543 add AJ re Jiminny
app.staging.jiminny.com
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 1 Q2 - Platform Team - Scrum Board - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
Console Home | Console Home | us-east-2
Console Home | Console Home | us-east-2
SecurityGroup | EC2 | us-east-2
SecurityGroup | EC2 | us-east-2
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
SRD-6779 | JY-20632 | Unable to log in to Sidekick with SSO by yalokin-jiminny · Pull Request #11935 · jiminny/app
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jy 19798 evaluation for ai activity types by nikolaybiaivanov · Pull Request #468 · jiminny/prophet
Jiminny
Jiminny
Close tab
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Ask Jiminny test report - 8 Apr 2026 - Ask Jiminny test report - 13 Apr 2026.pdf
Service-Desk - Queues - Platform team - Service space - Jira
Service-Desk - Queues - Platform team - Service space - Jira
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
JY-20543 add AJ reports User pilot tracking by LakyLak · Pull Request #11932 · jiminny/app
Configure SSH access to multiple environment - Engineering - Confluence
Configure SSH access to multiple environment - Engineering - Confluence
CloudWatch | us-east-2
CloudWatch | us-east-2
New Tab
New Tab
CloudWatch | us-east-2
CloudWatch | us-east-2
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
AWS Console Home
Skip to Main Content
Skip to Main Content
Amazon Q
Services
Search
Ask Amazon Q
[Option+S]
CloudShell
Notifications (none available)
Help & support
Settings
United States (Ohio)
United States (Ohio)
STAGE
Account ID: 4387-4037-0364
STAGE
EC2 EC2
EC2
Elastic Container Service Elastic Container Service
Elastic Container Service
S3 S3
S3
CodeDeploy CodeDeploy
CodeDeploy
CloudWatch CloudWatch
CloudWatch
ElastiCache ElastiCache
ElastiCache
Aurora and RDS Aurora and RDS
Aurora and RDS
Amazon OpenSearch Service Amazon OpenSearch Service
Amazon OpenSearch Service
CloudFront CloudFront
CloudFront
MediaLive MediaLive
MediaLive
Open side navigation
CloudWatch
CloudWatch
Logs Insights...
|
Firefox
|
CloudWatch | us-east-2 — Work
|
us-east-2.console.aws.amazon.com/cloudwatch/home?r us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logsV2:logs-insights$3FqueryDetail$3D~(end~0~start~-3600~timeType~'RELATIVE~tz~'UTC~unit~'seconds~editorString~'fields*20*40timestamp*2c*20*40message*2c*20*40logStream*2c*20*40log*0a*7c*20filter*20*40message*20like*20*22*5bAskJiminnyReport*3aGenerate*5d*22*20*0a*7c*20filter*20*40message*20not*20like*20*2fAnalytic*2f*20*7c*20filter*20*40message*20not*20like*20*2fTranscript*2f*0a*7c*20filter*20*40message*20not*20like*20*2fWebhook*2f*20*7c*20filter*20*40message*20not*20like*20*2fMeetingBot*2f*20*0a*7c*20limit*2010000~queryId~'0551e814-f51a-4339-8372-80d7ba4cef27~source~(~'*2a)~lang~'CWLI~logClass~'STANDARD~accountIDs~(~'All)~queryBy~'allLogGroups)...
|
10789
|
|
10790
|
+SlackEDHomeDMSActivityFilesLater..•MoreFileEditVi +SlackEDHomeDMSActivityFilesLater..•MoreFileEditViewGoHistoryWindow→HelpTue 14 Apr 11:59:13+Jiminny ...# Starredplatform-inner-teamChannels# ai-chapter# alerts# backend# confusion-clinic# curiosity_lab# engineering# frontend# general# infra-changes# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi…..• Direct messagesAneliya Angelova, ...Steliyan GeorgievAdelina Petrova, Ili...R. Adelina PetrovaO. Calea DimitravoSearch Jiminny IncAneliya Angelova, Nikolay Yankov, Steliyan GeorgievMessagesAdd canvas+tnove ne tccioune chyirponormone nunpomопределен когато тествамеNikolay Yankov 10:41 AMможеш ли да я рьннеш ти командатаLukas Kovalik 10:43 AMдаNikolay Yankov 10:45 AMпиши кат оя рьннешLukas Kovalik 10:52 AMзабавих се че ми се разбазикаха settings за средипуснах и мина и fail-наима result но e failedзначиREASON_NOT_ENOUGH_ACTIVITIESвиж дали има нещо в OD със този филтьрNikolay Yankov 11:01 AMДобреNikolay Yankov 11:39 AMя рьнни пак LukasLukas Kovalik 11:43 AMготовосьщотоCompetitive pitches беше втория нали такаMessage Aneliya Angelova, Nikolay Yankov, Steliyan Georgiev+AaSupport Daily - in 3h 1 m100% C48Fuune 4Today ~New...
|
NULL
|
NULL
|
NULL
|
10790
|
|
10791
|
FirefoxFileEoitViewHistoryBookmarksProfilesToolsWi FirefoxFileEoitViewHistoryBookmarksProfilesToolsWindowHelpdoo.sideme.minny.com/dl-teoorts mdnideeC< 40 Wl Ot SupportDaily • in 3h1m A 100%C ® Tue 14 Apr 11:59:16You are currently impersonating Nikolay Yankov <)Ask Jiminny ReportsCreatePlatform Sprint 1 Q2 - Platform TeaJY-20543 add AJ reports User piloZ Configure SSH access to multipleConsole Home | Console Home | usSecurityGroup | EC2 |us-east-2JY-20543 add AJ reports User pilo5 SRD-6779 | JY-20632 | Unable toJy 19798 evaluation for ai activity8 Jiminny7 Ask Jiminny test report - 8 Aor 201- Service-Desk - Queues - PlatformC JY-20543 add AJ reports User pilo(x) Configure SSH access to multipleCa CloudWatch | us-east-2New TabCa CloudWatch | us-east-2+ New Tab• Report namelPrompySaved searchAll statuses• @ Clear all.NAME AFREQUENCYSHARED10Test 2Test 5Test 6DailyDailyDailyEXPIRING +28/03/202618/04/202619/04/20261ACTIONSapp.staging.jiminny.com/plavlists ask-iiminny = 869720)...
|
NULL
|
NULL
|
NULL
|
10791
|