|
19233
|
JY-20725-handle-HS-search-rate-limit → origin : JY JY-20725-handle-HS-search-rate-limit → origin : JY-20725-handle-HS-search-rate-limit
JY-20725 add HS rate limit handling on activities rematching...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19233
|
|
19234
|
JY-20725 add HS rate limit handling on activities JY-20725 add HS rate limit handling on activities rematching
PhostormVIewINavicareCodeLaravelWindow?9 JY-20725-handle-HS-search-rate-lroledey© BatchSyncCollectolT SyncCrmEntitiesTrait.phpC) CachedCrmServiceDecorator.ongoveryaetviycrmlaskJoo.phpe balchsynckealssec clientone© ClosedDealStagesS © RateLimitException.phpDealrielasservice.gc)Decorateacuivilv.or© FieldDefinitions.phrclass Cllent extends Baseclient 1mpLements HubspotclientintertaceC) FieldT vpeconvertepublic const string BASE_URL ='https:/Lapi.hubapi.com' ;e Hubspotclientinteric) Hubspot lokenmanC) PavloadBuilder.phpnublic const int AssoctaTtoNs ratcH st7E LтмIT = 1900•C) RemotecrmobiectrP ResponseNormalizec) Service.onrprivate HubspotPaginationService $paginationService:C)SvncFieldAction.onZusagesC) SvncRelatedActivitprivate HubspotTokenManager $tokenManagerC) WebhookSvncBatclv MintearationAor49 ₫M AcceccorsSoc1aLAccountservice ssoc1alAccountserviceHubspotPaginationService SpaginationService.Local ChangesCancola yLog X• Chanaes 12 files, uodatina.Side-bv-side viewer+Do not ignoreHighlight wordsXBô ?= env.local ano8 35f036ac app/Services/Crm/Hubspot/Client.phgC) Client.oho aon/Services/Crm/Hubsoot© HandleHubspotRateLimit.php app/Jobs/MiddlewareC HandleHubspotRateLimitTest.php tests/Unit/Jobs/Middleware© HubspotClientinterface.php app/Services/Crm/Hubspotuse HubSpot\Client\ Crm\Pipelines Model\ PipelineStaqe:use Hubspot Cllent Crm Properties Model Propertyuse Hubspot biscovery biscovery;@ HubspotPaginationService.php app/Services/Crm/Hubspot/Pagination© JiminnyDebugCommand.php app/Console/Commandsuse Jaminny xceotions Crmexceotion:php logging.php configuse Jiminny\Exceptions\SocialAccountTokenInvalidException;use Jiminny Joos Crm Notelbiect:© MatchActivityCrmData.php app/Jobs/Crmuse Jiminny Models Crm Field:© PaginationState.php app/Services/Crm/Hubspot/PaginationRateLimitException.php app/Exceptions© RateLimitExceptionTest.php tests/Unit/Exceptionsuse Jiminny Services Crm. Basecuient:use SevenShores.HubsnotExcentions.HubsnotExcent.ion.Unversioned Files 9 filesuse SevenShores Hubsnot Factory.E.env.nikilocal appSevenShores Hubsnot Httn Resnonse.E.env.other appuse Jiminny\Services\Crm \Hubspot \Pagination \HubspotPaginationService:© CanAccessAiReportsTest.php tests/Unit/PoliciesThrowable© CreateMockAskJiminnvReportResultCommand.php app/Console/Commands/Rnravicon.ico puolicEids.txt apd* @phpstan-tupe CrmFieldOption arrayfid:string, label:string, value?:string}1araw sal querv sal aool@ SimulateWebhooksCommand.ohn app/Console/Commands/Crm/HubspotCthic-scotRacolin1(colf.•RASE HIPI).M4 WEBHOOK FILTERING IMPLEMENTATION.md aoolSthis->setVersion(self::MIN_API_VERSION):public function getMinimumApiVersionO: stringreturn selt::MIN API VEKSTON:Preparation for Refi... 23 m left100% 1Mon 11 May 15:37:58Ohuospot/serwice.onp=laravel.log *4 SF jiminny@localhost]4 HS_local [jiminny@localhost]- console [PRODI& console lEUllA console [STAGING]w.*•Ừ:1740A2 A60 ^ v 1/431744[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] No data{"correlation_id":"954d156d-8a4f-4592-a046-e16c5dd7d3bf™, "trace_id": "ecc7aeb5-a4e6[2026-05-11 11:21:45] Loca?. WARNING: [HubSpot Journal Polling) Maximum empty results reached, stopping ("enpty-results":5, "max empty_results":5} ("correlation. D[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Polling) Maximum empty results reached, stopping {"empty_results":5,"max_empty_results":5} {"correlation, w[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles":5,"files_downloaded":0,"empty_ files":0,"other_[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019e15a9-9ea0-7da7-87bc-82592e3ccf0d"} {"correlatio11745174612020-05-11 11.21.40 LocaL.LNFU. LHUDSpOt Journal PoLLing keLeased poLLing lock1"correlation_1d** 95401500-8a4T-4592-a040-elocoad/as0t, Crace_1d": "ecc/ael[2026-05-11 11:21:48] local.INFO: Jiminny \Console\Commands\Command::run Memory usage before starting command {"command": "mailbox:batch:process" , "memoryBeforeCc- 17471748=17412026-05-11 11:21.48 LocaL.LNFU:[EmailSchedulel FINISHED batch process {"host"."docker lamp_1" "processed":0} {"correlation_id"."241421de-745e-44a3-a65f-377ate-lmito olclle sac lomiaholeano-sealcisreleallmllnandling on activities rematchina2026-05-11 11:21:48 LocaL.LNPU:nnAWOnSO eNonanIsaWonmanIHHNunemonyUsadeon conmanIoE econmant MenatoXHoacH nocesseremenonybenonaconmannDeDush Commits to ap:1d::run Memory usage before starting command {"command" : "crm: sync-hubspot-objects", "memoryBefnd::run Memory usage for command * "command": "crm:sync-hubspot-obnects", "memoryBeforecommandinMisync {"team":"b2b115eb-93ce-4d1b-929c-173757df8fba", "usage" :23350336, "real_usage" :62914560, "pitv D 9 filescted for user -"useriid":"35e34a7a-1c02-4f04-87ac-22c3a385e6e3", "account": "JaminnyModels Seiv aoo 7 tilesowner is not connected, attempting team members {"crm_provider": "hubspot", "crm_owner":109, "tzrv D Exceptions 1 filepers found with active crm connection 1"crm_provider": "hubspot", "team_1d":29s 1"correlation_id.() RateLimitException.ohover found with active crm connection {"crm_provider":"hubspot", "team_id":29} {"correlation_id"v O Jobs 2 filesshed {"team":"b2b115eb-93ce-4d1b-929c-173757df8fba","provider":"hubspot","status":"disconnecterv D Crm 1 tile© MatchActivitvCrmData.ohvv M Middleware 1 file4 differences© HandleHubspotRateLimit.phpv MServices/Crm/Hubspot 4 filesv O Pagination 2 filesC) HubsootPacinationService.ohr@ DaginationState nhn(c) Client nhn© HubspotClientinterface.phpv Mtostc/Ulnit 2 filesentionv @ Exceptions 1 file© RateLimitExceptionTest.phpv @ Jobs/Middleware 1 fileFor Commit and Push to non-protected branches, preview commits before pushPush taas.Canceluse Jiminnv Services Crm Hubsnot Pacination HubsnotPaginationService:use Tlluminate| Sunnont\ Facades| Pedisuco Throwahle.* @phpstan-tupe CrmFieldOption arrayfid:string, label:string, value?:string}Sthis->setBaseUrl(self::BASE_URL):Sthis->setVersion(self::MIN_API_VERSION) :»Execute a HubSoot APT call with rate limit handlinafo 4 spaces...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19234
|
|
19639
|
JY-20725-handle-HS-search-rate-limit → origin : JY JY-20725-handle-HS-search-rate-limit → origin : JY-20725-handle-HS-search-rate-limit
JY-20725 add tests
Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
tests/Unit 2 files, folder
Jobs/Crm 1 file, folder
MatchActivityCrmDataTest.php, class
Services/Crm/Hubspot/Pagination 1 file, folder
HubspotPaginationServiceTest.php, class
Jobs/Crm 1 file, folder
MatchActivityCrmDataTest.php, class
MatchActivityCrmDataTest.php, class
Services/Crm/Hubspot/Pagination 1 file, folder
HubspotPaginationServiceTest.php, class
HubspotPaginationServiceTest.php, class
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19639
|
|
19640
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
SlackFileEditViewGoHistoryWindowHelp+APPDOCKER₴81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total'*'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•More[Platform) Refinemen….. 48 m left100% C8• Mon 11 May 16:12:25ED-→Describe what you are looking forJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 0E:: AppsS Jira CloudToastGanala Cala# releases8 226 0• Messages+C Files• Bookmarks20832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobMessage #releases+..•...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19640
|
|
19641
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
PhpStormVIeWINavicarecodemelprTavsco.s?9 JY-20725-handle-HS-search-raProiect vRematchActivityOnCrmObjectDetach.php‹> >(ch MatchActivitvCrmDataTest.ohn© ImportOpportunityBahuospotraginatonservice.org© MatchActivitiesToNe©UserAutomatedReportsController.php40 PlavbackController.pnpA console [STAGING]© Hubspot/service.ongС масhаcuvitycrmDa© SaveActivityTest.phg© SaveTranscriptionTeT DeleteCrmEntityTrait.php© RateLimitExceptionTest.php© Job.phpseluoLavoutlest.ongC SubscribeForEvents.RateLimitException.pho© SyncActivity Test.phf © CrmObiectsResolver.phpc) SyncHubspotObiects(C) HandleHubspotRateLimit.php© Client.php© Kernel.php(C) PaqinationState.pho© MatchCrmData.php(C) ProviderRateLimiter.php(C) PaqinationContia.php17421743<?php1744420 X8 ^ Y 1745c) SvncLeadstest.phpc) Svncobiectstest.ohdeclare(strict tyoessio%c) SvncOpportunitiesJoC SvncOpportunitvTes174017471748namespace Tests Unit obs Crm.c) SuncProflleLeadstresC SvncProfileMetadata› use ...=1750{1751c) SvncProfile@pportunC SvncTeamFields Jobiclass MatchActivityCrmDataTest extends TestCasec) SvncTeamMetadatan( Teaminitia|Svnc lobT- 175%20 usagesc UindateProfileRelatecprivate ActivityRepository|Mock0bject $activityRepository:Cancola yLocal ChangesLog XChanaes 5 files. uodatina= env.local anoa Side-by-side viewerDo not ignore@ 44d5678c tests/Unit/Services/Crm/Hubspot/Paqination/HubspotPaginationServiceTest.phpHighlight words -x1l?© HubspotPaginationServiceTest.php tests/Unit/Services/Crm/Hubspot/Pagin© JiminnyDebugCommand.php app/Console/Commandsphp logging.php config© MatchActivityCrmDataTest.php tests/Unit/Jobs/CrmUnversioned Files 9 files.env.nikilocal appE.env.other app© CanAccessAiReportsTest.php tests/Unit/Policies© CreateMockAskJiminnyReportResultCommand.php app/Console/Commands/Re& favicon.ico publicE ids.txt appraw sal_query.sal app© SimulateWebhooksCommand.php app/Console/Commands/Crm/HubspotM+ WEBHOOK_FILTERING_IMPLEMENTATION.md appSthis->hubspotClientMock->expects($this->once())->method('request')->wLLLkecurnschs->crearenuospotkessth1s->loqgerMock->expects(Sthis->onceO)>method"into'sthis-sassertznotvcresults):Sthis-›assertEquals(0, $total);Sthis->assertNul1($lastRecordId):orivate function createHubsootResponse(arrav Sdata): HubsootResponsereturn new HubspotResponse(new Response(200, [], json_encode($data)));* [Platform] Refinemen... 48 m left100% 2• Mon 11 May 16:12:34+0..4 HS_local jiminny@localhost]eeinsal??ee# console [eu)12020-00-11 11.21.40l Local.eNru. Lnubspor Journal rocuing No aauaf"correlationid": "954d156d-8a4f-45.°[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles"[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019€[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Pollingl Released polling lock {"correlation_id":"954d156c[2026-05-11 11:21:48] local.INF0: Jiminny Console\ Commands\ Command::run Memory usage before starting command {"[2026-05-11 11:21:48] local.INFO: [EmailSchedule] STARTING batch process {"host":"docker_lamp_1"} {"correlati~2826-05-11)1121481 1OCA INET. Eman Schedinel STNTSHEN hatch.[2026-05-11Pusn commits to app2826-05-11[2026-05-11JY-20725-handle-HS-search-rate-limit → origin : JY-20725-handle-HS-search-rate-limitJY-20725 add testsv D tests/Unit 2 files2826-05-11[2026-05-11v Joos/crm 1 tileC) MatchActivitvCrmDataTest.phpv _ Services/crm/Hubspot/Paqination 1 tile@ HubspotPaginationServiceTest.phpCascadeHubspot Rate Limit ReOk Where is it used, will I break something it is replace LogicException with RuntimeException in RateLimitException?Searched RateLimitException in ~/iminnylapp (php) (44)Inoughttor 2s>Searched throw new RateLimit Excention and pertormed 1 other auervY2, 11n0 AM Giiy usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets MayOal .A rour included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets May 12, 11:00Ask anything (&AL)+ <› CodeS Adaptive27 differences•, Sthis->anythingO):v For Commit and Push to non-protected branches, preview commits before push^ Push taasiCancolDuchSthis->assertEmpty(Sresults)Sthis-sassentsqualls( Stotato.$this->assertNull($lastRecordId);= 0. "oaoana' => 0%P A enasod...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19641
|
|
19642
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER- ₴81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total''paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•More[Platform) Refinemen….. 48 m left100% C8• Mon 11 May 16:12:56ED-→Describe what you are looking forJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 0E:: AppsS Jira CloudToastGanala Cala# releases8 226 0• Messages+C Files• Bookmarks20832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobMessage #releases+..•...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19642
|
|
19643
|
Show Diff
Group By
Jump to Source
SlackFileEditVie Show Diff
Group By
Jump to Source
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER₴81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total''paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•Morelahol• [Platform) Refinemen... 47 m left100% <8• Mon 11 May 16:13:02-→Describe what you are looking forJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 0E:: AppsS Jira CloudToastGanala Cala# releases8 226 0• MessagesBookmarks+C Files20832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobMessage #releases+..•...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19643
|
|
19644
|
Show Diff
Group By
Jump to Source
PhpStormVIeWINav Show Diff
Group By
Jump to Source
PhpStormVIeWINavicarecodemelprTavsco.s?9 JY-20725-handle-HS-search-raProiect vRematchActivityOnCrmObjectDetach.phplaravel.log X4 HS_local [jiminny@localhost]eeinsalekeie# console [eu)v _ Services/crm/Hubspot/Paqination 1 tile@ HubspotPaginationServiceTest.phoprivate ActivityRepository|Mock0bject SactivityRepository:Cancola yLocal ChangesLog XChanaes 5 files. uodatina= env.local anoa Side-by-side viewerDo not ignore@ 44d5678c tests/Unit/Services/Crm/Hubspot/Paqination/HubspotPaginationServiceTest.phpHighlight words -x1l?© HubspotPaginationServiceTest.php tests/Unit/Services/Crm/Hubspot/Pagin,© JiminnyDebugCommand.php app/Console/Commandsphp logging.php config© MatchActivityCrmDataTest.php tests/Unit/Jobs/CrmUnversioned Files 9 files.env.nikilocal appE.env.other app© CanAccessAiReportsTest.php tests/Unit/Policies© CreateMockAskJiminnyReportResultCommand.php app/Console/Commands/Re& favicon.ico publicE ids.txt appT raw sal_querv.sal app© SimulateWebhooksCommand.php app/Console/Commands/Crm/HubspotM+ WEBHOOK_FILTERING_IMPLEMENTATION.md appSthis->hubspotClientMock->expects($this->once())->method('request')->wLLLkecurnsch1s->creacenuospotkes‹›>© ImportOpportunityBahuospotraginatonservice.org© MatchActivitiesToNe© Hubspot/service.ong© MatchActivityCrmDa© SaveActivityTest.phg© SaveTranscriptionTe©UserAutomatedReportsController.php© PlaybackController.phpA console [STAGING]T DeleteCrmEntityTrait.php© RateLimitExceptionTest.php© Job.phpseluoLavoutlest.ongC SubscribeForEvents.RateLimitException.pho© SyncActivity Test.phf © CrmObiectsResolver.phpc) SyncHubspotObiects(C) HandleHubspotRateLimit.php© Client.php© Kernel.php(C) PaqinationState.pho© MatchCrmData.php(C) ProviderRateLimiter.php(C) PaqinationContia.php<?phpc) SvncLeadstest.phpc) Svncobiectstest.ohdeclare(strict tyoessio%174217431744420 X8 ^ Y 174517401747174812020-00-11 11.21.40l Local.eNru. Lnubspor Journal rocuing No aauaf"correlation.id": "954d156d-8a4f-45.°[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles"[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019€[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Pollingl Released polling lock {"correlation_id":"954d156c[2026-05-11 11:21:48] local.INF0: Jiminny Console\ Commands\ Command::run Memory usage before starting command {"[2026-05-11 11:21:48] local.INF0: [EmailSchedulel STARTING batch process {"host"."docker lamp_ 1"} {"correlatic) SvncOpportunitiesJoC SvncOpportunitvTesnamespace Tests Unit obs Crm.c) SuncProflleLeadstresC SvncProfileMetadata› use ...=1750{17512826-05-11)11•21481 1OCA INET. Eman Schedine STNESHER hatch[2026-05-11Pusn commits to app2826-05-11[2026-05-11JY-20725-handle-HS-search-rate-limit → origin : JY-20725-ha →JY-20725 add testsc) SvncProfile@pportunC SvncTeamFields Jobiv D tests/Unit 2 files2826-05-11v Joos/crm 1 tileclass MatchActivityCrmDataTest extends TestCase[2026-05-11c) SvncTeamMetadatanC) MatchActivitvCrmDataTest.php( Teaminitia|Svnc lobT- 175%20 usagesc UindateProfileRelatecsth1s->loqgerMock->expects(Sthis->onceO)>method"into'v For Commit and Push to non-protected branches, preview commits before pushsthis-sassertznotvcresults):^ Push taasiCancolDuchSthis-›assertEquals(0, $total);Sthis->assertNul1($lastRecordId):orivate function createHubsootResponse(arrav Sdata): HubsootResponsereturn new HubspotResponse(new Response(200, [], json_encode($data)));Sthis->assertEmpty(Sresults)Sthis-sassentsquallsdl Stotaib.$this->assertNull($lastRecordId);# [Platform] Refinemen... 47 m left100% 2• Mon 11 May 16:13:02+0..CascadeHubspot Rate Limit ReOk Where is it used, will I break something it is replace LogicException with RuntimeException in RateLimitException?Searched RateLimitException in ~/iminnylapp (php) (44)Inoughttor 2s>Searched throw new RateLimit Excention and pertormed 1 other quervY2, 11n0 AM Giiy usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets MayOal .A rour included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets May 12, 11:00Ask anything (&AL)+ <› CodeS Adaptive27 differences•, Sthis->anythingO):= 0. "oaoana' => 0%P A enasod...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19644
|
|
19646
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
PhpStormVIeWINavicarecodemelprTavsco.s?9 JY-20725-handle-HS-search-raProiect vRematchActivityOnCrmObjectDetach.php174017471748namespace Tests Unit obs Crm.c) SuncProflleLeadstresC SvncProfileMetadata› use ...=1750{1751c) SvncProfile@pportunC SvncTeamFields Jobiclass MatchActivityCrmDataTest extends TestCasec) SvncTeamMetadatan( Teaminitia|Svnc lobT- 175.20 usagesc UindateProfileRelatecprivate ActivityRepository|Mock0bject SactivityRepository:Cancola yLocal ChangesLog XChanaes 5 files. uodatina= env.local anoa Side-by-side viewerDo not ignore@ 44d5678c tests/Unit/Services/Crm/Hubspot/Paqination/HubspotPaginationServiceTest.phpHighlight words -x1l?© HubspotPaginationServiceTest.php tests/Unit/Services/Crm/Hubspot/Pagin,© JiminnyDebugCommand.php app/Console/Commandsphp logging.php config© MatchActivityCrmDataTest.php tests/Unit/Jobs/CrmUnversioned Files 9 files.env.nikilocal appE.env.other app© CanAccessAiReportsTest.php tests/Unit/Policies© CreateMockAskJiminnyReportResultCommand.php app/Console/Commands/Re& favicon.ico publicE ids.txt appT raw sal_querv.sal app© SimulateWebhooksCommand.php app/Console/Commands/Crm/HubspotM+ WEBHOOK_FILTERING_IMPLEMENTATION.md appSthis->hubspotClientMock->expects($this->once())->method('request')->wLLLkecurnsch1s->creacenuospotkes‹›>© ImportOpportunityBa© MatchActivitiesToNe© MatchActivityCrmDa© SaveActivityTest.phg© SaveTranscriptionTehuospotraginatonservice.org©UserAutomatedReportsController.php© PlaybackController.phpA console [STAGING]© Hubspot/service.ongT DeleteCrmEntityTrait.php© RateLimitExceptionTest.php© Job.phpseluoLavoutlest.ongC SubscribeForEvents.RateLimitException.pho© SyncActivity Test.phf © CrmObiectsResolver.phpc) SyncHubspotObiects(C) HandleHubspotRateLimit.php© Client.php© Kernel.php(C) PaqinationState.pho© MatchCrmData.php(C) ProviderRateLimiter.php(C) PaqinationContia.php17421743<?php1744420 X8 ^ Y 1745c) SvncLeadstest.phpc) Svncobiectstest.ohdeclare(strict tyoessio%c) SvncOpportunitiesJoC SvncOpportunitvTessth1s->loqgerMock->expects(Sthis->onceO)>method"into'sthis-sassertznotvcresults):Sthis-›assertEquals(0, $total);Sthis->assertNul1($lastRecordId):orivate function createHubsootResponse(arrav Sdata): HubsootResponsereturn new HubspotResponse(new Response(200, [], json_encode($data)));# [Platform] Refinemen... 47 m left100% 2• Mon 11 May 16:13:05+0..4 HS_local [jiminny@localhost]eeinsalekeie# console [eu)12020-00-11 11.21.40l Local.eNru. Lnubspor Journal rocuing No aauaf"correlation.id": "954d156d-8a4f-45.°[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty_[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles"[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019€[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Pollingl Released polling lock {"correlation_id":"954d156c[2026-05-11 11:21:48] local.INF0: Jiminny Console\ Commands\ Command::run Memory usage before starting command {"[2026-05-11 11:21:48] Local.INF0: [EmailSchedule] STARTING batch process {"host":"docker_lamp_1"} {"correlati2826-05-11 11 21:681 10001 INET Eman Schedile FINTSHER hatch[2026-05-11Pusn commits to app2826-05-11[2026-05-11JY-20725-handle-HS-search-rate-limit → origin : JY-20725-ha →JY-20725 add testsv D tests/Unit 2 files2826-05-11[2026-05-11v Joos/crm 1 tileC) MatchActivitvCrmDataTest.phpv _ Services/crm/Hubspot/Paqination 1 tile@ HubspotPaginationServiceTest.phoCascadeHubspot Rate Limit ReOk Where is it used, will I break something it is replace LogicException with RuntimeException in RateLimitException?Searched RateLimitException in ~/iminnylapp (php) (44)Inoughttor 2s>Searched throw new RateLimit Excention and pertormed 1 other quervY2, 11n0 AM Giiy usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets Mayal .• rour included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets May 12, 11:00Ask anything (&AL)+ <› CodeS Adaptive27 differences•, Sthis->anythingO):v For Commit and Push to non-protected branches, preview commits before push^ Push taasiCancelDuchSthis->assertEmpty(Sresults)Sthis-sassentsquallsdl Stotaib.$this->assertNull($lastRecordId);= 0. "oaoana' => 0%P A enasod...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19646
|
|
19647
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER→ ₴1DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total''paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•Morelahol• [Platform) Refinemen... 47 m left100% <8• Mon 11 May 16:13:35-→Describe what you are looking forJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 0E:: AppsS Jira CloudToastGanala Cala# releases8 226 0• Messages+C Files• Bookmarks20832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobMessage #releases+..•...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19647
|
|
19648
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
PhpStormVIeWINavicarecodemelprTavsco.s?9 JY-20725-handle-HS-search-raProiect vRematchActivityOnCrmObjectDetach.phplaravel.log X4 HS_local [jiminny@localhost]eeinsalekeie# console [eu)v _ Services/crm/Hubspot/Paqination 1 tile@ HubspotPaginationServiceTest.phoprivate ActivityRepository|Mock0bject SactivityRepository:Cancola yLocal ChangesLog XChanaes 5 files. uodatina= env.local anoa Side-by-side viewerDo not ignore@ 44d5678c tests/Unit/Services/Crm/Hubspot/Paqination/HubspotPaginationServiceTest.phpHighlight words -x1l?© HubspotPaginationServiceTest.php tests/Unit/Services/Crm/Hubspot/Pagin,© JiminnyDebugCommand.php app/Console/Commandsphp logging.php config© MatchActivityCrmDataTest.php tests/Unit/Jobs/CrmUnversioned Files 9 files.env.nikilocal appE.env.other app© CanAccessAiReportsTest.php tests/Unit/Policies© CreateMockAskJiminnyReportResultCommand.php app/Console/Commands/Re& favicon.ico publicE ids.txt appT raw sal_querv.sal app© SimulateWebhooksCommand.php app/Console/Commands/Crm/HubspotM+ WEBHOOK_FILTERING_IMPLEMENTATION.md appSthis->hubspotClientMock->expects($this->once())->method('request')->wLLLkecurnsch1s->creacenuospotkes‹›>© ImportOpportunityBahuospotraginatonservice.org© MatchActivitiesToNe© Hubspot/service.ong© MatchActivityCrmDa© SaveActivityTest.phg© SaveTranscriptionTe©UserAutomatedReportsController.php© PlaybackController.phpA console [STAGING]T DeleteCrmEntityTrait.php© RateLimitExceptionTest.php© Job.phpseluoLavoutlest.ongC SubscribeForEvents.RateLimitException.pho© SyncActivity Test.phf © CrmObiectsResolver.phpc) SyncHubspotObiects(C) HandleHubspotRateLimit.php© Client.php© Kernel.php(C) PaqinationState.pho© MatchCrmData.php(C) ProviderRateLimiter.php(C) PaqinationContia.php<?phpc) SvncLeadstest.phpc) Svncobiectstest.ohdeclare(strict tyoessio%174217431744420 X8 ^ Y 174517401747174812020-00-11 11.21.40l Local.eNru. Lnubspor Journal rocuing No aauaf"correlation.id": "954d156d-8a4f-45.°[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles"[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019€[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Pollingl Released polling lock {"correlation_id":"954d156c[2026-05-11 11:21:48] local.INF0: Jiminny Console\ Commands\ Command::run Memory usage before starting command {"[2026-05-11 11:21:48] local.INF0: [EmailSchedulel STARTING batch process {"host"."docker lamp_ 1"} {"correlatic) SvncOpportunitiesJoC SvncOpportunitvTesnamespace Tests Unit obs Crm.c) SuncProflleLeadstresC SvncProfileMetadata› use ...=1750{17512826-05-11)11•21481 1OCA INET. Eman Schedine STNESHER hatch[2026-05-11Pusn commits to app2826-05-11[2026-05-11JY-20725-handle-HS-search-rate-limit → origin : JY-20725-ha →JY-20725 add testsc) SvncProfile@pportunC SvncTeamFields Jobiv D tests/Unit 2 files2826-05-11v Joos/crm 1 tileclass MatchActivityCrmDataTest extends TestCase[2026-05-11c) SvncTeamMetadatanC) MatchActivitvCrmDataTest.php( Teaminitia|Svnc lobT- 175%20 usagesc UindateProfileRelatecsth1s->loqgerMock->expects(Sthis->onceO)>method"into'v For Commit and Push to non-protected branches, preview commits before pushsthis-sassertznotvcresults):^ Push taasiCancolDuchSthis-›assertEquals(0, $total);Sthis->assertNul1($lastRecordId):orivate function createHubsootResponse(arrav Sdata): HubsootResponsereturn new HubspotResponse(new Response(200, [], json_encode($data)));Sthis->assertEmpty(Sresults)Sthis-sassentsquallsdl Stotaib.$this->assertNull($lastRecordId);# [Platform] Refinemen... 47 m left100% 2• Mon 11 May 16:13:36+0..CascadeHubspot Rate Limit ReOk Where is it used, will I break something it is replace LogicException with RuntimeException in RateLimitException?Searched RateLimitException in ~/iminnylapp (php) (44)Inoughttor 2s>Searched throw new RateLimit Excention and pertormed 1 other quervY2, 11n0 AM Giiy usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets MayOal .A rour included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets May 12, 11:00Ask anything (&AL)+ <› CodeS Adaptive27 differences•, Sthis->anythingO):= 0. "oaoana' => 0%P A enasod...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19648
|
|
19649
|
SlackFileEditViewGoHistoryWindowHelpAPPDOCKER- ₴81 SlackFileEditViewGoHistoryWindowHelpAPPDOCKER- ₴81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type('deals''companies''contacts''cal)* @param array<string, mixed>Spayload Thesearch payload with filters, sorts, prop‹* @return array The search response with'results''total'*'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors** @return array The search response with 'results', 'total', 'paging' keys*/public function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff --/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11+359,11 @ScrmService = ScrmResolver->prepareCrmService);-//-/1for ($i = 0; si < 3; Si++) {if (Si % 250) {Sthis->info("Syncing opportunity {Si}");Sthis->info("Matching contact {$i}");-1/-1/.+++++ScrmService->syncOpportunity('374720564');if ($i % 25=0{//Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i}");////}ScrmService->syncOpportunity('374720564');$crmService->matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any containeror image →Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-lirHomeDMsActivityFilesLater..•Morelahol• [Platform) Refinemen... 47 m left100% <8• Mon 11 May 16:14:01-→Describe what you are looking forJiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of_jimi...^ Direct messagesP. Aneliya Angelova®. Galya DimitrovaPetko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev• VesE Lukas Kovalik y... 0E:: AppsS Jira CloudToastGanala Cala# releases8 226 0• MessagesBookmarks+C Files20832): RemoveToday ~ ok 4.0 and 4.1 models(#506) (steliyan-g)NewGitHub APP 2:13 PM9 new commits pushed to master by ilian-jiminny861859d2 - Stop sending signals to datadog forincresed/ decreased workers.23ad2bb1 - Drop usage of RunForSeconds.3aedca4a - Generage Workerld on the fly.86cb0855 - ignore-missing-request-id-on-transcript Handle wrong format for assemblytranscriptions, this happends for old activitiesthat had a different provider and were updatedto point to Assembly when the providers weredeleted49ca4dfe - ignore-missing-request-id-on-transcript added log importShow morejiminny/app| Added by GitHubCircleCI APP 2:38 PMDeployment Successful!Project: appWhen:05/11/202611:38:14Tag:View JobMessage #releases+..•...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19649
|
|
19650
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
PhpStormVIeWINavicarecodemelprTavsco.s?9 JY-20725-handle-HS-search-raProiectRematchActivityOnCrmObjectDetach.phplaravel.log X4 HS_local jiminny@localhost]eeinsalekeie# console [eu)v Joos/crm 1 tileC) MatchActivitvCrmDataTest.phpv M Services/Crm/Hubspot/Pagination 1 file@ HubspotPaginationServiceTest.phpprivate ActivityRepository|Mock0bject SactivityRepository:Cancola yLocal ChangesLog XChanaes 5 files. uodatina= env.local anoa Side-by-side viewerDo not ignore@ 44d5678c tests/Unit/Services/Crm/Hubspot/Paqination/HubspotPaginationServiceTest.phpHighlight words -x1l?© HubspotPaginationServiceTest.php tests/Unit/Services/Crm/Hubspot/Pagin,© JiminnyDebugCommand.php app/Console/Commandsphp logging.php config© MatchActivityCrmDataTest.php tests/Unit/Jobs/CrmUnversioned Files 9 files.env.nikilocal appE.env.other app© CanAccessAiReportsTest.php tests/Unit/Policies© CreateMockAskJiminnyReportResultCommand.php app/Console/Commands/Re& favicon.ico publicE ids.txt appraw sal_query.sal app© SimulateWebhooksCommand.php app/Console/Commands/Crm/HubspotM+ WEBHOOK_FILTERING_IMPLEMENTATION.md appSthis->hubspotClientMock->expects($this->once())->method('request')->wLLLkecurnsch1s->creacenuospotkes‹›>© ImportOpportunityBahuospotraginatonservice.org© MatchActivitiesToNe© Hubspot/service.ong© MatchActivityCrmDa© SaveActivityTest.phg© SaveTranscriptionTe©UserAutomatedReportsController.php© PlaybackController.phpA console [STAGING]T DeleteCrmEntityTrait.php© RateLimitExceptionTest.php© Job.phpseluoLavoutlest.ongC SubscribeForEvents.RateLimitException.pho© SyncActivity Test.phf © CrmObiectsResolver.phpc) SyncHubspotObiects(C) HandleHubspotRateLimit.php© Client.php© Kernel.php(C) PaqinationState.pho© MatchCrmData.php(C) ProviderRateLimiter.php(C) PaqinationContia.php<?phpc) SvncLeadstest.phpc) Svncobiectstest.ohdeclare(strict tvoessio:174217431744420 X8 ^ Y 174517401747174812020-00-11 11.21.40l Local.eNru. Lnubspor Journal rocuing No aauaf"correlation.id": "954d156d-8a4f-45.°[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Pollingl Maximum empty results reached, stopping {"empty.[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles"[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019€[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Pollingl Released polling lock {"correlation_id":"954d156c[2026-05-11 11:21:48] local.INF0: Jiminny Console\ Commands\ Command::run Memory usage before starting command {"[2026-05-11 11:21:48] local.INF0: [EmailSchedulel STARTING batch process {"host"."docker lamp_ 1"} {"correlatic) SvncOpportunitiesJoC SvncOpportunitvTesnamespace Tests Unit obs Crm.2826-05-11)11•21481 1OCA INET. Eman Schedine STNESHER hatch[2026-05-11Pusn commits to appc) SuncProflleLeadstresC SvncProfileMetadata› use ...=1750{1751(2026-05-11rch-rate-limit - origin : JY-20725-handle-HS-search-rate-limit[2026-05-11c) SvncProfile@pportunC SvncTeamFields Jobiv D tests/Unit 2 filesclass MatchActivityCrmDataTest extends TestCase2826-05-11[2026-05-11c) SvncTeamMetadatan( Teaminitia|Svnc lobT20 usagesc UindateProfileRelatecsth1s->loqgerMock->expects(Sthis->onceO)>method"into'v For Commit and Push to non-protected branches, preview commits before pushsthis-sassertznotvcresults):^ Push taasiCancelDuchSthis-›assertEquals(0, $total);Sthis->assertNul1($lastRecordId):orivate function createHubsootResponse(arrav Sdata): HubsootResponsereturn new HubspotResponse(new Response(200, [], json_encode($data)));Sthis->assertEmpty(Sresults)Sthis-sassentsquallsdl Stotaib.$this->assertNull($lastRecordId);# [Platform] Refinemen... 47 m left100% 2• Mon 11 May 16:14:01+0..CascadeHubspot Rate Limit ReOk Where is it used, will I break something it is replace LogicException with RuntimeException in RateLimitException?Searched RateLimitException in ~/iminnylapp (php) (44)Inoughttor 2s>Searched throw new RateLimit Excention and pertormed 1 other quervY2, 11n0 AM Giiy usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets Mayal .A rour included daily usage quota is exhausted. Purchase extra usage to continue using premium models. Quota resets May 12, 11:00Ask anything (&AL)+ <› CodeS Adaptive27 differences•, Sthis->anythingO):= 0. "oaoana' => 0%P A enasod...
|
PhpStorm
|
Push Commits to app
|
NULL
|
19650
|
|
20103
|
JY-20725-handle-HS-search-rate-limit → origin : JY JY-20725-handle-HS-search-rate-limit → origin : JY-20725-handle-HS-search-rate-limit
JY-20725 add more tests
Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
tests/Unit/Services/Crm/Hubspot 1 file, folder
ClientTest.php, class...
|
PhpStorm
|
Push Commits to app
|
NULL
|
20103
|
|
20104
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpAPP (docker)APP (docker)-zsh+DOCKER-232,9 +235,11€ 881DEV (docker)₴284* @param string SobjectType The object type ('deals', 'companies', 'contacts', 'calls')* @param array<string, mixed› Spayload The search payload with filters, sorts, properties, etc.ereturn array Thesearch response with'results'total', 'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors* @return array The search response with 'results', 'total','paging' keyspublic function search(string SobjectType, array Spayload): array-zsh>0 hl*5screenpipe"100% <78• Mon 11 May 17:31:29181O 886-zsh*7 |+APPend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11 +359,11 @ScrmService = ScrmResolver->prepareCrmService();-//-//for (Si = 0; si < 3; Si++) {if (Si%25 ===0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {$i}");-//-//.ScrmService->syncOpportunity('374720564');if ($i % 25 === 0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {Si}");////ScrmService-›syncOpportunity('374720564');ScrmService-›matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1...
|
PhpStorm
|
Push Commits to app
|
NULL
|
20104
|
|
20105
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
PhostormINavigarecode?.Mon 11 May 17:31:39Helpers_ huospot© UserAutomatedReportsController.php_ ActionsODTO0 Fields© MatchActivityCrmData.phpW JournalOpportunitySyncStrateaclass scentrest, exxebosehesuease tootv _ Pagination© HubspotPaginationSe 100gc) PaginationContiatesProspectSearchStrateg)M Service TraitsWebhool@ BatchSvncCollectorTest 1871880 ₽C) BatchSvncRedisServicec) ClientTest.oho( ClosedDea|StagesServic 1903 DC DealFieldsServiceTest.p( Decorate ActivitvTest nh 19Local ChangesLog XChandes 4 files= env.local ano(c) ClientTest.oho tests/Unit/Services/Crm/Hubsooti© JiminnyDebugCommand.php app/Console/Commandsphp logging.php config• v Unversioned Files 9 filesE.env.nikilocal appE.env.other app© CanAccessAiReportsTest.php tests/Unit/Policies© CreateMockAskJiminnyReportResultCommand.php app/Console/Commands/ReE favicon.ico publicE ids.txt appT raw sal_query.sal app© SimulateWebhooksCommand.php app/Console/Commands/Crm/Hubspolm+ WEBHOOK_FILTErING_IMPLEMEnTATION.md apppublic function testSearchThrowsRateLimitExceptionWhenCircuitBreakerActive: void{...}public function testSearchThrowsRateLimitExceptionAndSetsNx0nFresh429@: void{...}public function testSearchPropagatesNonRateLimitExceptionO: void{..pubunc function testSearchcircu1tBreakerRetrvAftercomoutedFromStoredtimestamoo: vozd-...;RematchActivityOnCrmObjectDetach.php© HubspotPaginationService.phpC) TrackAutomated Revori Generaledeventonp=laravel.log *A SF [jiminny@localhost]4 HS_local [jiminny@localhost]# console [PRODI« console [EU]A console [STAGING]T SvncCrmEntities Trait.onpC) CachedCrmServiceDecorator.ongw.*T.Y:CheскAnакetrукemotematch.png1740*RateLimitexception.phpC) Kernel.php5| A17 A136 X11 A ~ [CREDIT_CARD][2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] No dataf"correlation_id": "954d156d-8a4f-4592-a046-e16c5dd7d3bf™, "trace_id": "ecc7aeb5[2026-05-11 11:21: 451 Locat. WARNING: [HUbSpot Journal Polling) Maximum empty results reached, stopping f"empty-results" ;5, "max empty_results" :57 "correlati om[2026-05-11 11:21:45] local.WARNING: [HubSpot Journal Polling) Maximum empty results reached, stopping {"empty_results":5,"max_empty_results":5} {"correlation[2026-05-11 11:21:45] local.INF0: [HubSpot Journal Polling] Service ending {"runtime_seconds":57,"total cycles":5,"files_downloaded":0,"empty_ files":0,"other.[2026-05-11 11:21:46] Local. INFO: [HubSpot Journal Polling] Saved offset to database on cleanup {"offset":"019e15a9-9ea0-7da7-87bc-82592e3ccf0d"} {"correlatio)[2026-05-11 11:21:46] local.INF0: [HubSpot Journal Polling] Released polling lock{"correlation_id":"954d156d-8a4f-4592-a046-e16c5dd7d3bf" "trace_id":"ecc7a[2026-05-11 11:21:48] local.INF0: Jiminny\Console\Commands\Command::run Memory usage before starting command {"command": "mailbox:batch:process", "memoryßeforect1747—1748[2026-05-11 11:21:48] local.INF0: [EmailSchedulel FINISHED batch process {"host"."docker lamp_1" "processed":0} {"correlation_id":"241421de-745e-44a3-a65f-37JY-20725-handle-HS-search-rate-limit → origin : JY-20725-ha →JY-20725 add more testsv O tests/Unit/Services/Crm/Hubspot 1 filec) ClientTest.ohond::run Memory usage before starting command ?"command": "crm:sync-hubspot-objects", "memoryßefnd::run Memory usage for command *"command": "crm:sync-hubspot-obnects"."memorvBeforecommandinmsync {"team":"b2b115eb-93ce-4d1b-929c-173757df8fba", "usage" :23350336, "real_usage" :62914560, "picted for user {"userId":"33e34a7a-1c02-4f04-87ac-22c3a385e6e3", "account": {"Jiminny\\Models|\s*owner is not connected, attempting team members 1"crm_provider": "hubspot", "crm_owner":109,"ibers found with active erm connection {"erm provider"."hubspot" "team id".29} {"correlation jiper found with active crm connection {"crm_provider":"hubspot", "team_id":29} {"correlation_id"shed {"team": "b2b115eb-93ce-4d1b-929c-173757df8fba", "provider": "hubspot", "status": "disconnecte6 differencesTJ0 + → = Side-by-side viewer •Do not ignoreBchodbron toctc/linit/Services/crm//=uosoot/Clientlest.onoHighlight wordsXBô ?use HubSpot\Client\ Crm Associations Api\ BatchApi:HubSpot\Client\Crm Associations Model\BatchInputPublic0biectId:use "uosoot Lurent crm.Associations ModelBarchresponseruoucassoczat1onMUlt1,rubsoot Cuent Crm Associations Model Puolicuonect..dHubSpot\CLient\ Crm\Deals\Api BasicApi as DealsBasicApiuse HubSoot Client crm Deals Model SimolePuolicobiectwithassociations as DealWithAssociations:use HubSpot \Client\Crm Pipelines \Api PipelinesApiuse HubSoot Client Crm Pinelines Model CollectionResponsePineline:use HubSoot Client Crm Pinelines Model Error:use HubSpot \Client\Crm\Properties \Api\CoreApi;use HubSpot\Client\Crm\Properties\Model\Property:use HubSpot \Discovery as HubSpotDiscovery:use HubSpot\Discovery \Crm\Deals \Discovery as DealsDiscovery:use Jiminny Models\Crm \Configuration;use Jiminny Models\Crm\Field;- use Jiminny Models\SocialAccount;uco liminnvlSonvicoc|Cnml Hubenot|Client.use Jiminny Services\Crm Hubspot \HubspotTokenManager:use Jiminny\Services\Crm Hubspot \Pagination HubspotPaginationService:Use Jiminny services soc1alAccountservice*use Leaque OAuth2 Client Token AcceccTokoneuse PHPUnit\Framework\Mock0bject \Mock0biect:use PHPUnit\Framework\ TestCase:Psr Loo nulcloggersevenshores huospor nopoints cnoagementsPubLicUbnectldnseruouicassoclat ionMult1,CTLOanvAdiExcentionsactAdiExcentionsWithassociations as DealWithAssociations:For Commit and Push to non-protected branches, preview commits before pushbonsePineline:Push taas.CancelPushuse HubSnot Client Com Pronenties Ani CoreAni:use HubSpot\Client\Crm \Properties \Model\Property:use HubSpot \Discovery as HubSpotDiscovery:use HubSpot \Discovery \Crm \Deals Discovery as DealsDiscovery:uce liminnvlFycontione|Patol imi+Fycontion•use Jiminny \Models\Crm\Configuration:use Jiminny Models\Crm\Field:use Jiminny Models\SocialAccount:use Jiminny Services ComlHubeno+lcison+.use Jiminny|Services\Crm Hubspot\HubspotTokenManager:use Jiminny Services\ Crm Hubspot\Paqination HubspotPaqinationService:use Jiminnv|Services|SocialAccountService:use Leaque\OAuth2\Client\ Token\AccessToken:UTE.RIfo 4 spaces...
|
PhpStorm
|
Push Commits to app
|
NULL
|
20105
|
|
20106
|
Show Diff
iTerm2ShellEditViewSessionScriptsProfile Show Diff
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpAPP (docker)APP (docker)-zsh+DOCKER-232,9 +235,11 @@₴81DEV (docker)₴284* @param string SobjectType The object type ('deals', 'companies', 'contacts', 'calls')* @param array<string, mixed› Spayload The search payload with filters, sorts, properties, etc.ereturn array Thesearch response with'results'total', 'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors* @return array The search response with 'results', 'total','paging' keyspublic function search(string SobjectType, array Spayload): array-zsh>0 ll*5screenpipe"100% <78• Mon 11 May 17:31:39T81O 886-zsh*7 |+APPend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11 +359,11 @ScrmService = ScrmResolver->prepareCrmService();-//-//for (Si = 0; si < 3; Si++) {if (Si%25 ===0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {$i}");-//-//.ScrmService->syncOpportunity('374720564');if ($i % 25 === 0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {Si}");////ScrmService-›syncOpportunity('374720564');ScrmService-›matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1...
|
PhpStorm
|
Push Commits to app
|
NULL
|
20106
|
|
20633
|
JY-20725-handle-HS-search-rate-limit → origin : JY JY-20725-handle-HS-search-rate-limit → origin : JY-20725-handle-HS-search-rate-limit
JY-20725 code review suggestions
Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
5 files, folder
app 3 files, folder
Exceptions 1 file, folder
RateLimitException.php, exception class
Jobs/Crm 1 file, folder
MatchActivityCrmData.php, class
Services/Crm/Hubspot 1 file, folder
Client.php, class
tests/Unit 2 files, folder
Jobs/Middleware 1 file, folder
HandleHubspotRateLimitTest.php, class
Services/Crm/Hubspot 1 file, folder
ClientTest.php, class
app 3 files, folder
Exceptions 1 file, folder
RateLimitException.php, exception class
Jobs/Crm 1 file, folder
MatchActivityCrmData.php, class
Services/Crm/Hubspot 1 file, folder
Client.php, class
Exceptions 1 file, folder
RateLimitException.php, exception class
RateLimitException.php, exception class
Jobs/Crm 1 file, folder
MatchActivityCrmData.php, class
MatchActivityCrmData.php, class
Services/Crm/Hubspot 1 file, folder
Client.php, class
Client.php, class
tests/Unit 2 files, folder
Jobs/Middleware 1 file, folder
HandleHubspotRateLimitTest.php, class
Services/Crm/Hubspot 1 file, folder
ClientTest.php, class
Jobs/Middleware 1 file, folder
HandleHubspotRateLimitTest.php, class
HandleHubspotRateLimitTest.php, class
Services/Crm/Hubspot 1 file, folder
ClientTest.php, class
ClientTest.php, class
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push...
|
PhpStorm
|
Push Commits to app
|
NULL
|
20633
|
|
20634
|
JY-20725-handle-HS-search-rate-limit → origin : JY JY-20725-handle-HS-search-rate-limit → origin : JY-20725-handle-HS-search-rate-limit
JY-20725 code review suggestions
Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
5 files, folder
app 3 files, folder
Exceptions 1 file, folder
RateLimitException.php, exception class
Jobs/Crm 1 file, folder
MatchActivityCrmData.php, class
Services/Crm/Hubspot 1 file, folder
Client.php, class
tests/Unit 2 files, folder
Jobs/Middleware 1 file, folder
HandleHubspotRateLimitTest.php, class
Services/Crm/Hubspot 1 file, folder
ClientTest.php, class
app 3 files, folder
Exceptions 1 file, folder
RateLimitException.php, exception class
Jobs/Crm 1 file, folder
MatchActivityCrmData.php, class
Services/Crm/Hubspot 1 file, folder
Client.php, class
Exceptions 1 file, folder
RateLimitException.php, exception class
RateLimitException.php, exception class
Jobs/Crm 1 file, folder
MatchActivityCrmData.php, class
MatchActivityCrmData.php, class
Services/Crm/Hubspot 1 file, folder
Client.php, class
Client.php, class
tests/Unit 2 files, folder
Jobs/Middleware 1 file, folder
HandleHubspotRateLimitTest.php, class
Services/Crm/Hubspot 1 file, folder
ClientTest.php, class
Jobs/Middleware 1 file, folder
HandleHubspotRateLimitTest.php, class
HandleHubspotRateLimitTest.php, class
Services/Crm/Hubspot 1 file, folder
ClientTest.php, class
ClientTest.php, class
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app...
|
PhpStorm
|
Push Commits to app
|
NULL
|
20634
|
|
20635
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
Cancel
Push
Push
Push Commits to app
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpDOCKERAPP (-zsh)-zsh+ +₴81DEV (docker)₴2APP (-zsh)ScrmService->syncOpportunity('374720564');ScrmService-›matchByName('Robot');-zsh>0 ll*5screenpipe"100% <78• Mon 11 May 19:03:19T₴1O ₴6-zsh*7 |+end diffAPPFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistentdebugging tools in any container or image → docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diffPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.PHP runtime: 8.3.30Running analysis on 7 cores with 10 files per process.Parallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!Loadedconfig default from".php-cs-fixer.dist.php".5666/5666 [100%Fixed 0 of 5666 files in 66.457 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image » docker debug docker_1amp_1Learn more at https://docs.docker.com/go/debug-cli/lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ I...
|
PhpStorm
|
Push Commits to app
|
NULL
|
20635
|
|
20636
|
Show Diff
Group By
Jump to Source
Show Details
Exp Show Diff
Group By
Jump to Source
Show Details
Expand All
Collapse All
For Commit and Push to non-protected branches, preview commits before push
Help
Push tags:
All
Current Branch
PhostormVIewINavigarecodeLaravelKeractorWindowmelprTavsco.s?9 JY-20725-handle-HS-search-rateProleteyG RematchActivityOnCrmObjectDetach.php© HubspotPaginationService.php>@ Mailbo›C) UserAutomatedReportscontroller.ong© Hubspot/Service.phpOhubspot/service.pnp© SyncCrmEntitiesTrait.phpv D Middleware© HandleHubspotRat>@ Streaming© MatchActivityCrmData.php© RateLimitException.phpC) HandlerubspotkateLimit.php>D Team> C Telephony> DUser© ImportRecallAlRecordi<?ohpdeclarelstrict tyoessi:c) SasVisibilitycontrolTe:v W Listenersnamespace Tests Unit Jobs MiddLeware:> @ Activities>D Audio• AutomatedReports› use ...Autoscore17 Crm18 VAM DealRisks#[CoversClass(HandleHubspotRateLimit::class)]class HandleHubspotRateLimitTest extends TestCase17 ElasticSearchlGrouosprivace nanolenuospotkareLimit sillddleware.Import> M MailbosCancola yLocal ChangesLog x• Chanaes & files. uodatino..+ → E Side-by-side viewer -Do not ignoreHighlight words -x1l?= env.local aor.8 02d5214b app/Exceptions/RateLimitException.phgC) Client.oho aon/Services/Crm/Hubsootc ClientTect nhn tectc/Unit/Services/Crm/Huhsnotuse Ihrowable:@ HandleHubspotRateLimitTest.php tests/Unit/Jobs/Middleware© JiminnyDebugCommand.php app/Console/Commandsclass rateuimitzxcention extends runtimezxceotionphp logging.php config© MatchActivityCrmData.php app/Jobs/Crmpublic function constructa© RateLimitException.php app/Exceptionsstrina Smessage = "".• Iinvorcinnod Siloc @ filacrivate readonly int SretryAfter = 1E.env.nikilocal ap!E.env.other app© CanAccessAiReportsTest.php tests/Unit/Policies?Throwable Sorevious = nulzparent::__construct($message, 0, $previous);© CreateMockAskJiminnyReportResultCommand.php app/Console/Commands/Rl€ favicon.ico public=ids.txt apdnublic function aetRetrvAftero. intTa raw sal querv.sal app© SimulateWebhooksCommand.php app/Console/Commands/Crm/Hubspotreturn max(Sthis->retryAfter, 1)M. WEBTOOK FILTERING IMPLEMENTATION.mo a00hhl100% L2P9. Mon 11 May 19:03:22C) TrackAutomated Revori GeneraledeventonpA SF [jiminny@localhost]4 HS_local [jiminny@localhost]A console [PROD]A console [EUiconsole [STAGINGIC) CachedCrmServiceDecorator.ong"Set-Cookie":["__cf_bm=SIUrtdQgXVrik50pdqF6hZVYKhzTnQBidvMabeCtm0Y-1778163675-[IP_ADDRESS]-rI.ZggtDKxTge5zr8_2gbBfWMQQ.ufZEXDZyHz2mBUFdzdo2gTHEs0kXi =s07-May-26 14:51:15 GMT: domain=.hubapi.com:Http0nly: Secure: SameSite=None"].XI A Y© CheckAndRetryRemoteMatch.php"keporc-10"."© ClientTest.phgC) Kernel.php20"endpoints":"urz\":"https:|VAVa.nel.cloudflare.com\\/report\\/v4?s=NYAlsVTP0fYm32qrSDjxYE4sd2RWRqiSp3wHsmdEgZ1zoYdxI%2BIxVpHmsKn30%2BKVA3mFIJ2m7YRECDGSMx2BW2LYT206FM4%2l v("group"; \"cf-nell","max age":604800,"J,"NEL":["f"success traction".0.olg"max age":6048002"]"Server": ["cloudflare"]}} {Push Commits to appreh-rate-limit → Ollclle , Mar lromiahcleno-sealcinraleallmltsuagestionsv D 5 filesv aoo 3 tilesv D Exceptions 1 fileRateLimitException.phpD Jobs/Crm 1 fileC)MatchActivitvermData.ohov MServices/Crm/Hubspot 1 file(C) Client.ohov D tests/Unit 2 filesv M.lobs/Middleware 1 file© HandleHubspotRateLimitTest.phpv M Services/Crm/Hubspot 1 file© ClientTest.php4 differencesv For Commit and Push to non-protected branches, preview commits before push^ Push taasiCancolPushpublic function getRetryAfterQ: intreturn $this->retryAfter:W Windsurf Teams 1:1 UTF-8 f 4 spaces ©...
|
PhpStorm
|
Push Commits to app
|
NULL
|
20636
|
|
24644
|
Last login: Thu May 7 09:44:56 on ttys007
Poetry Last login: Thu May 7 09:44:56 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20773-fix-automated-reports-user-pilot-tracking) $ vprod
Enter MFA code for arn:aws:iam::438740370364:mfa/[EMAIL]:
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
Python"
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
Python"...
|
iTerm2
|
Python"
|
NULL
|
24644
|
|
20269
|
Explorer (⇧⌘E)
selectionSOURCE CONTROCHANGESv Ch Explorer (⇧⌘E)
selectionSOURCE CONTROCHANGESv Changes@ .env.local• .env.nikilocal@ .env.otherE ids.txtraw sal_query.sal* WEBHOOK_FILTERING IMPLEMENT.# JiminnyDebugCommand.php app/Cl"# SimulateWebhooksCommand.php a.« CreateMockAskJiminnv... 79 b + 4, U** RateLimitException.php app/Excepti...MatchActivitvCrmData.php app/Jobs... M«* Client.php app/Services/Crm/Hubs..9, M"loadina.nho confid* favicon.ico public** Handle-lubsootRateLimitTest.oho t...** CanAccessA RenortsTest.oho tests/..** ClientTest oho tests/Unit/Services/Cr.V GRAPHP9Auto @ ÷J 1O JY-20725 add m.• JY-20725 add tests Lukas Kovalik• JY-20725 add HS rate limit handling on a..Merae oulll request #2.Merae branch 'master' into .IY-20818..Merae oull reauest #12057 from limin….•JY-20819• Increase download transer…JY.20818 move ask liminnv renorts to..Merae oull reauest #12052 from limin…..Др митна оинани тонMorao hranch Imactorl into.IV.20917Morao null roauoct #120/7 from limin• JY-20662 Removed word boost para..JY-20817: Fix deleting old tracks mih..Merge pull request #12043 from jimin…Merge branch 'master' into JY-19938.Merge pull request #12044 from jimin...y 10000 Addod cancont informatinnJy-19938 reorder arrav mao ilianJY-19938: Address PR review commeJY-19938 lint fixes ilianiô JY-20725-harlle-HS-search-rate-limit* O@ 6 A 15 © 40|Windovorkina Tree 9, M# MatchActivityCrmData.php (Working Tree) M# RateLimitexception.php (Working Tree) Mapp › Console › Commands › Reports > * CreateMockAskJiminnyReportResultCommand.php > .declare(strict tvoes=1):nanespace damennyconsote rcomtands neporis,WKoZsalawe2ealalawnnlenlthn?sJiminny\Services\Kiosk\AutomatedReports\AutomatedReportsService;symrony componentrconsotexcommand tcomnand as symronyconnand;class CreateMockAskJiminnvReportResultCommand extends Commancprotected Ssignature ='reports:create-mock-ask-11m1nnv-resultThe Th nf thoand receive it}the result to creates new revort if omitted)?erated, 3=sent, 4=failed)}result lpot, podcastysin the response (opctonausaudlo unL to store inthe response (optional)}for the payload period (Y-m-d, defaults to last week)}--to-date= : To date for the payload period Y-m-d, detaults tovesterday--promot-title=Mock Ask Jiminny Promot : The ask iiminnv promot title stored in the oavload›{--saved-search-name=Mock Saved Search : The saved search name stored in the payload)protected Sdescription = 'Create a mock AutomatedRenortResult for an ask iiminny report to test the user reports list endooint':pub lic Tunccion handle: 1nuSusertd = ant sthis->aroument'user 1d'):Suser = lser.. fiind(susertd)if (suser === null) ₫thic-serror "lIcer with TD feucertdl not found.".return Symtonycommand: : raLLurE;Sthis-sinfo"User: Suser-saetName@> ID: SuserId). team: «Suser-s>aetTeamIdo":Sreport = $this->resolveReport($user);iT (sreport=== null) {recurn symtonycommano:: ralLukc,Sresult = Sthis->createResult(Sreport:Sthic-sinfol "Mock recul+ created cuccoccfullv.!:ponort Th: {Sreport->getUuid()}");feronort.saottdlllll),pocul+ UlTn: {Sresult->getUuid()}"):-3 Review rate limit handli.Review rate limit handling for HubSpot jo..• Thought for 1s >• Now fix issue 5 — remove the duolicated constants fromHandleHubsootRateLimitTest.oho •• Read HandLeHubspotRateLimittest.php• Edit HandleHubsnotRateLimitTest.oholclass Handle:ubsootRatelimitlest extends Testcasenrivate const int MAX RETRY DELAY = 600-private const int MIN_RETRY DELAY = 1;private HandleHubspotRateLimit Smiddleware:• Edit HandleHubspotRateLimittest.ohopublic static tunction delayclampingProvider: array'short retry uses retry_after as floor' = ['retryAfter' = 1,'expectedMin' = self::MIN_RETRY DELAY,'expectedMax' = self::MIN RETRY DELAY + self::JITTER SECONDSmedium retry passes through' =>• Now run all affected tests to verify everything passes:• Bach Run all affected testeIN docker exec docker lamo 1 vendor/bin/ohounitrests/Unit/Services/Crm/Hubspot/CLientTest.oho vtests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php \# Transmuting..Queue another meccado' CreateMockAskJiminnvReportResul100% L2Mon 11 May 17:49:30return Smethod->invoke sthis->client. Se:class Handle:ubsootRatelimitTest extends Testcaseprivate HandleHubspotRateLimit Smiddleware:public static tunction delayclampingProvider: arrayreturn'short retry passes through' = [IretrvAfterl = 1."eynectedMin" = 1.11 1 + 5 jitter'medium retry passes through' => [#Ask before edit.Слолооs AUTF-8 LF [PHP 8 Signin 8.3P...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20269
|
|
20270
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
selectionVIeWWindovSOURCE CONTROlientlest.oho (Workina Tree Mm Client.oho (Workina Tree 9, M#MatchActivitvCrmData.pho (Workina Tree MV CHANGESapp > Exceptions › «* RateLimitException.php > 4 RateLimitException<?phpy Changesnanespace Jamenny cxcepctons,.env.local• .env.nikilocal@ .env.otherclass RateLimitexception extends RuncimecxceptionE ids.txtraw sal_query.sq* WEBHOOK_FILTERING_IMPLEMENT...# JiminnyDebugCommand.php app/Cl** SimulateWebhooksCommand.php a...private readonly ant srecryatter = 1,« CreateMockAskJiminnvRe...Tuhrowable Sprevious = null,«* RateLimitEx -/iminny/app/app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCo6. Soreviousw MatchActivi mmand.php • Untrackedi Client.php app/Services/Crm/Hubs.."loadina.nno confid* favicon.ico public** Handle-lubsootRateLimitTest.oho t...public function getRetryAfter(): intreturn max sthis->retryAfter, 1:«* CanAccessAiReportsTest.php tests/...** ClientTest.oho tests/Unit/Services/Cr.m RateLimitException.oho (Workina Tree M Xdeclare(strict_types=1);use inrowaole.orivate readonly int SretrvAfter:publicfunction _construct(suring smessage =?int sreuryAtter = 1,TThrowable Sprevious = nulloarent:: construct Smessage. 0. Sorevious):sthis->retryAfter = max(1, SretryAfter);public function getRetryAfter(): intreturn sthis->retryAfter:V GRAPHP9Auto @÷TGO JY-20725 add m.• JY-20725 add tests Lukas Kovali!• JY-20725 add HS rate limit handling on a...Merae oulll request #12.Merae branch 'master' into .JY-20818.Merae oull reauest #12057 from limin…JY-20819: Increase download transcr...JY.20818 move ask liminnv renorts to..Merge pull request #12052 from jimin...Morao hranch Imactorl into.IV.20917Merge pull request #12047 from jimin...• IY.20662 roturn void ilierJY-20662 Removed word boost para...JY-20817: Fix deleting old tracks mih...Merge pull request #12043 from jimin...Merge branch 'master' into JY-19938...Merge pull request #12044 from jimin...y 10000 Addod cancont informatinnJy-19938 reorder arrav mao ilianJY-19938: Address PR review comme.JY-19938 lint fixes ilianPA1 20706,h0dle-HS-search-rate-limit* o@6 A 11 © 40Review rate limit handling for HubSpot jo...Here are code reveiw suggestions: Issues• Thouaht for 1s >• Now fix issue 5 — remove the duolicated constants from HandleHubspotRateLimitTest.oho •• Read HandLeHubspotRateLimittest.php• Edit HandleHubsnotRateLimitTest.oholclass Handle:ubsootRatelimitlest extends Testcasenrivate const int MAX RETRY DELAY = 600-private const int MIN_RETRY DELAY = 1;private HandleHubspotRateLimit Smiddleware;• Edit HandleHubspotRateLimittest.ohopublic static tunction delayclampingProvider: array'short retry uses retry_after as floor' = ['retryAfter' = 1,'expectedMin' = self::MIN_RETRY DELAY,'expectedMax' = self::MIN_RETRY_DELAY + self:: JITTER_SECONDS,medium retry passes through' =>• Now run all affected tests to verify everything passes:• Bach Run all affected testeIN docker exec docker lamo 1 vendor/bin/ohounittests/Unit/Services/Crm/Hubspot/ClientTest.php \tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php\* Puttering...Queue another meccado+00' RateLimitException.oho100% L2Mon 11 May 17:49:34return Smethod->invoke Sthis->client. Se:class Handle:ubsootRatelimitTest extends Testcaseprivate HandleHubspotRateLimit Smiddleware:public static tunction delayclampingProvider: arrayreturn'short retry passes through' = [IretrvAfterl = 1."eynectedMin" = 1.1/ 1 + 5 jitter'medium retry passes through' => [#Ask before edit.ç Not Committed Yet Ln 11, Col 1Spaces: 4 UTF-8 LF PHP 8 Signin 8.3P...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20270
|
|
20271
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpAPP (-zsh)-zsh++DOCKER-232,9 +235,11 @@2,- 881DEV (docker)₴2APP (-zsh)84* eparam string SobjectType The object type ('deals', 'companies', 'contacts', 'calls')* @param array<string, mixed› Spayload The search payload with filters, sorts, properties, etc.ereturn array Thesearch response with'results'total', 'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors* @return array The search response with 'results', 'total','paging' keyspublic function search(string SobjectType, array Spayload): array-zsh>0 ll*5screenpipe"100% <7O ₴68• Mon 11 May 17:49:45T₴1-zshAPPend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11 +359,11 @ScrmService = ScrmResolver->prepareCrmService();-//-//for (Si = 0; si < 3; Si++) {if (Si%25 ===0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {$i}");-//-//.ScrmService->syncOpportunity('374720564');if ($i % 25 === 0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {Si}");////ScrmService-›syncOpportunity('374720564');ScrmService-›matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20271
|
|
20272
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
selectionViewSOURCE CONTROCHANGESMessage aenter to commit on "J.v Changes@ .env.local• .env.nikilocal@ .env.otherE ids.txtraw sal_query.sq* WEBHOOK_FILTERING_IMPLEMENT..# JiminnyDebugCommand.php app/Cl"# SimulateWebhooksCommand.php a." CreateMockAskJiminnvReportResult.« RateLimitException.php a... m b + MMatchActivitvCrmData.php app/Jobs... M9, Mi Client.php app/Services/Crm/Hubs..loadina.nno confial* favicon.ico public** Handle-lubsootRateLimitTest.oho t...** CanAccessA RenortsTest.oho tests/..** ClientTest oho tests/Unit/Services/Cr.Windowlientlest.oho (Workina Tree Mm Client.oho (Workina Tree 9, Mapp › Exceptions > * RateLimitException.php › 9g RateLimitExceptionnamesoace Jiminnv Exceotions:use inrowablerclass RateLimitException extends RuntimeExceptionstrind Smessage = "nly int $retryAfter = 1,?Throwable $previous = null,UUUUNGEEpublic function getRetryAfter(): intreturn max($this->retryAfter, 1);#MatchActivitvCrmData.pho (Workina Tree Mm RateLimitException.oho (Workina Tree M Xnamespace Jiminnv Exceotions:use Throwable;class KateLimicexception excenas kuncmecxceoczon+J.oublic tunctionstrina Smessage = "int CretrvAfter = 1?Throwable $previous = null,parent::_construct(smessage, 0, Sprevious):public function getRetryAfter(): intreturn Sthis->retryAfter;V GRAPHP9Auto @÷TGO JY-20725 add m...• JY-20725 add tests Lukas Kovali!• JY-20725 add HS rate limit handling on a..Merae oulll request #2.Merae branch 'master' into .JY-20818.Merae oull reauest #12057 from limin….•JY-20819• Increase download transer…JY.20818 move ask liminnv renorts to..Merae oull reauest #12052 from limin…..Morao hranch Imactorl into.IV.20917Morao null roauoct #12047 from limin• IY.20662 roturn void ilier•JY-20662 Removed word boost para...JY-20817: Fix deleting old tracks mih...Merge pull request #12043 from jimin..Merge branch 'master' into JY-19938...Merge pull request #12044 from fimin…y 10000 Addod cancont informatinnJy-19938 reorder arrav mao ilianJY-19938: Address PR review comme.JY-19938 lint fixes ilianiô JY-20725-hardle-HS-search-rate-limit* (@ 6 A 11 ©40|Review rate limit handling for HubSpot jo..Here are code reveiw suggestions: Issues• Thought for 1s >• Now fix issue 5 — remove the duolicated constants from HandleHubspotRateLimitTest.oho •• Read HandLeHubspotRateLimittest.php• Edit HandleHubsnotRateLimitTest.oholclass Handle:ubsootRatelimitlest extends Testcasenrivate const int MAX RETRY DELAY = 600-private const int MIN_RETRY DELAY = 1;private HandleHubspotRateLimit Smiddleware:• Edit HandleHubspotRateLimittest.ohopublic static tunction delayclampingProvider: array'short retry uses retry_after as floor' = ['retryAfter' = 1,'expectedMin' = self::MIN_RETRY DELAY,'expectedMax' = self::MIN RETRY DELAY + self::JITTER SECONDSmedium retry passes through' =>• Now run all affected tests to verify everything passes:• Bach Run all affected testeIN docker exec docker lamo 1 vendor/bin/ohounitrests/Unit/Services/Crm/Hubspot/CLientTest.oho vtests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php \ PoticulatinaQueue another meccado' RateLimitException.oho100% L2Mon 11 May 17:49:45return Smethod->invoke sthis->client. Se:class Handle:ubsootRatelimitTest extends Testcaseprivate HandleHubspotRateLimit Smiddleware:public static tunction delayclampingProvider: arrayreturn'short retry passes through' = ['retryAfter' = 1,"eynectedMin" = 1.11 1 + 5 jitter'medium retry passes through' => [#Ask before edit.0 Not Committed Yet Ln 11, Col 1Spaces: 4 UTF-8 LF PHP 8 Signin 8.3P...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20272
|
|
20344
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies
U
ClientTest.php
tests/Unit/Services/Crm/Hubspot
M
Graph Section
GRAPH
GRAPH
JY-20725 add more tests
Lukas Kovalik
JY-20725-handle-HS-search-rate-limit
JY-20725 add tests
Lukas Kovalik
JY-20725 add HS rate limit handling on activities rematching
Lukas Kovalik
Merge pull request #12056 from jiminny/JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
origin/master
Merge branch 'master' into JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
Merge pull request #12057 from jiminny/JY-20819-increase-download-transctip-rate-limit
mihailmihaylovjiminny
JY-20819: Increase download transcription rate limit
mihail.mihaylov
JY-20818 move ask jiminny reports to its own datadog metric
Lukas Kovalik
Merge pull request #12052 from jiminny/JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge branch 'master' into JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge pull request #12047 from jiminny/JY-20662-remove-word-boost
ilian-jiminny
JY-20662 return void
ilian
JY-20662 Removed word_boost parameter from Assembly transcription request
ilian
JY-20817: Fix deleting old tracks
mihail.mihaylov
Merge pull request #12043 from jiminny/JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge branch 'master' into JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge pull request #12044 from jiminny/JY-19938-ES-mapping-update
ilian-jiminny
JY-19938 Added consent information and recording error reason to Elastic Search mapping
ilian
JY-19938 reorder array map
ilian
JY-19938: Address PR review comments
ilian
JY-19938 lint fixes
ilian
HandleHubspotRateLimitTest.php (Working Tree) (HandleHubspotRateLimitTest.php), Editor Group 1
ClientTest.php (Working Tree) (ClientTest.php), Editor Group 1
Client.php (Working Tree) (Client.php), Editor Group 1
RateLimitException.php, preview, Editor Group 1
MatchActivityCrmData.php (Working Tree) (MatchActivityCrmData.php), Editor Group 1
RateLimitException.php (Working Tree) (RateLimitException.php), Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 28
6
11
28
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 11, Col 1
git-commit Not Committed Yet
Not Committed Yet
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.
Issue 4 — object $job type in middleware has no compile-time safety
Issue 4 —
object $job
type in middleware has no compile-time safety
HandleHubspotRateLimit.php:20...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20344
|
|
20378
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies
U
ClientTest.php
tests/Unit/Services/Crm/Hubspot
M
Graph Section
GRAPH
GRAPH
JY-20725 add more tests
Lukas Kovalik
JY-20725-handle-HS-search-rate-limit
JY-20725 add tests
Lukas Kovalik
JY-20725 add HS rate limit handling on activities rematching
Lukas Kovalik
Merge pull request #12056 from jiminny/JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
origin/master
Merge branch 'master' into JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
Merge pull request #12057 from jiminny/JY-20819-increase-download-transctip-rate-limit
mihailmihaylovjiminny
JY-20819: Increase download transcription rate limit
mihail.mihaylov
JY-20818 move ask jiminny reports to its own datadog metric
Lukas Kovalik
Merge pull request #12052 from jiminny/JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge branch 'master' into JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge pull request #12047 from jiminny/JY-20662-remove-word-boost
ilian-jiminny
JY-20662 return void
ilian
JY-20662 Removed word_boost parameter from Assembly transcription request
ilian
JY-20817: Fix deleting old tracks
mihail.mihaylov
Merge pull request #12043 from jiminny/JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge branch 'master' into JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge pull request #12044 from jiminny/JY-19938-ES-mapping-update
ilian-jiminny
JY-19938 Added consent information and recording error reason to Elastic Search mapping
ilian
JY-19938 reorder array map
ilian
JY-19938: Address PR review comments
ilian
JY-19938 lint fixes
ilian
HandleHubspotRateLimitTest.php (Working Tree) (HandleHubspotRateLimitTest.php), Editor Group 1
ClientTest.php (Working Tree) (ClientTest.php), Editor Group 1
Client.php (Working Tree) (Client.php), Editor Group 1
MatchActivityCrmData.php (Working Tree) (MatchActivityCrmData.php), Editor Group 1
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php (Working Tree) (RateLimitException.php), Editor Group 1
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 28
6
11
28
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 11, Col 1
git-commit Not Committed Yet
Not Committed Yet
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20378
|
|
20383
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20383
|
|
20384
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
iTerm2ShellEditViewSessionScriptsProfilesWindowHelpAPP (-zsh)-zsh++DOCKER-232,9 +235,11 @@*81DEV (docker)₴2APP (-zsh)84* eparam string SobjectType The object type ('deals', 'companies', 'contacts', 'calls')* @param array<string, mixed› Spayload The search payload with filters, sorts, properties, etc.ereturn array Thesearch response with'results'total', 'paging'keys* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors* @return array The search response with 'results', 'total','paging' keyspublic function search(string SobjectType, array Spayload): array-zsh>0 ll*5screenpipe"100% <78• Mon 11 May 18:21:12T₴1O ₴6-zsh*7 |+APPend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11 +359,11 @ScrmService = ScrmResolver->prepareCrmService();-//-//for (Si = 0; si < 3; Si++) {if (Si%25 ===0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {$i}");-//-//.ScrmService->syncOpportunity('374720564');if ($i % 25 === 0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {Si}");////ScrmService-›syncOpportunity('374720564');ScrmService-›matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20384
|
|
20385
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20385
|
|
20396
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies
U
ClientTest.php
tests/Unit/Services/Crm/Hubspot
M
Graph Section
GRAPH
GRAPH
JY-20725 add more tests
Lukas Kovalik
JY-20725-handle-HS-search-rate-limit
JY-20725 add tests
Lukas Kovalik
JY-20725 add HS rate limit handling on activities rematching
Lukas Kovalik
Merge pull request #12056 from jiminny/JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
origin/master
Merge branch 'master' into JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
Merge pull request #12057 from jiminny/JY-20819-increase-download-transctip-rate-limit
mihailmihaylovjiminny
JY-20819: Increase download transcription rate limit
mihail.mihaylov
JY-20818 move ask jiminny reports to its own datadog metric
Lukas Kovalik
Merge pull request #12052 from jiminny/JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge branch 'master' into JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge pull request #12047 from jiminny/JY-20662-remove-word-boost
ilian-jiminny...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20396
|
|
20397
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
SlackFileEditViewGoHistoryWindowHelpAPP ()DOCKER-232,9 +235,11*81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type ('deals','companies', 'contacts','cal* @param array<string,mixed› Spayload The search payload with filters, sorts, propereturn array Thesearch response with'results"total','paging'keys+* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors+* @return array The search response with 'results', 'total', 'paging'keyspublic function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11 +359,11 @ScrmService = ScrmResolver->prepareCrmService();-//-//for (Si = 0; Si < 3; Si++) {if (Si%25 ===0) {Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i]");-//-//.ScrmService->syncOpportunity('374720564');if ($i % 25 === 0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {Si}");//}//ScrmService->syncOpportunity('374720564');ScrmService-›matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image →HomeDMsActivityFilesLater..•MoreED→Jiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...^ Direct messagesP. Aneliya Angelova% Galya Dimitrova I& Petko Kashinski&. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev®. VesB. Lukas Kovalik y... Oi: AppsS Jira CloudToast(abl100% <78• Mon 11 May 18:22:15Describe what you are looking for# releases8 226 0• MessagesC FilesBookmarks+9353b609 - JYToday ~bee402b7- JY-20395 Stop fetching ALLheaders (including file) for email importd6a0fe5a - JY-20395 lintdaa0373e - JY-20395 lint fixesaf59d609 - JY-20395 Removed no longer usedmethodsShow morejiminny/app | Added by GitHubCircleCl APP 5:11 PMDeployment Successful!Project: appWhen:05/11/202614:11:35Tag:View JobCircleCl APP 5:35 PMDeployment Successful!Project: appWhen:05/11/202614:35:58Tag:View JobMessage #releases+..•...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20397
|
|
20398
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies
U
ClientTest.php
tests/Unit/Services/Crm/Hubspot
M
Graph Section
GRAPH
GRAPH
JY-20725 add more tests
Lukas Kovalik
JY-20725-handle-HS-search-rate-limit
JY-20725 add tests...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20398
|
|
20399
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20399
|
|
20400
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies
U
ClientTest.php
tests/Unit/Services/Crm/Hubspot
M
Graph Section
GRAPH
GRAPH
JY-20725 add more tests
Lukas Kovalik
JY-20725-handle-HS-search-rate-limit
JY-20725 add tests
Lukas Kovalik
JY-20725 add HS rate limit handling on activities rematching
Lukas Kovalik
Merge pull request #12056 from jiminny/JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
origin/master
Merge branch 'master' into JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
Merge pull request #12057 from jiminny/JY-20819-increase-download-transctip-rate-limit
mihailmihaylovjiminny
JY-20819: Increase download transcription rate limit
mihail.mihaylov
JY-20818 move ask jiminny reports to its own datadog metric
Lukas Kovalik
Merge pull request #12052 from jiminny/JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge branch 'master' into JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge pull request #12047 from jiminny/JY-20662-remove-word-boost
ilian-jiminny
JY-20662 return void
ilian
JY-20662 Removed word_boost parameter from Assembly transcription request
ilian
JY-20817: Fix deleting old tracks
mihail.mihaylov
Merge pull request #12043 from jiminny/JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge branch 'master' into JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge pull request #12044 from jiminny/JY-19938-ES-mapping-update
ilian-jiminny
JY-19938 Added consent information and recording error reason to Elastic Search mapping
ilian
JY-19938 reorder array map
ilian
JY-19938: Address PR review comments
ilian
JY-19938 lint fixes
ilian
HandleHubspotRateLimitTest.php (Working Tree) (HandleHubspotRateLimitTest.php), Editor Group 1
ClientTest.php (Working Tree) (ClientTest.php), Editor Group 1
Client.php (Working Tree) (Client.php), Editor Group 1
MatchActivityCrmData.php (Working Tree) (MatchActivityCrmData.php), Editor Group 1
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php (Working Tree) (RateLimitException.php), Editor Group 1
…
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 28
6...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20400
|
|
20401
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies
U
ClientTest.php
tests/Unit/Services/Crm/Hubspot
M
Graph Section
GRAPH
GRAPH
JY-20725 add more tests
Lukas Kovalik
JY-20725-handle-HS-search-rate-limit
JY-20725 add tests
Lukas Kovalik
JY-20725 add HS rate limit handling on activities rematching
Lukas Kovalik
Merge pull request #12056 from jiminny/JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
origin/master
Merge branch 'master' into JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
Merge pull request #12057 from jiminny/JY-20819-increase-download-transctip-rate-limit
mihailmihaylovjiminny
JY-20819: Increase download transcription rate limit
mihail.mihaylov
JY-20818 move ask jiminny reports to its own datadog metric
Lukas Kovalik
Merge pull request #12052 from jiminny/JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge branch 'master' into JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge pull request #12047 from jiminny/JY-20662-remove-word-boost
ilian-jiminny
JY-20662 return void
ilian
JY-20662 Removed word_boost parameter from Assembly transcription request
ilian
JY-20817: Fix deleting old tracks
mihail.mihaylov
Merge pull request #12043 from jiminny/JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge branch 'master' into JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge pull request #12044 from jiminny/JY-19938-ES-mapping-update
ilian-jiminny
JY-19938 Added consent information and recording error reason to Elastic Search mapping
ilian
JY-19938 reorder array map
ilian
JY-19938: Address PR review comments
ilian
JY-19938 lint fixes
ilian
HandleHubspotRateLimitTest.php (Working Tree) (HandleHubspotRateLimitTest.php), Editor Group 1
ClientTest.php (Working Tree) (ClientTest.php), Editor Group 1
Client.php (Working Tree) (Client.php), Editor Group 1
MatchActivityCrmData.php (Working Tree) (MatchActivityCrmData.php), Editor Group 1
MatchActivityCrmData.php, Editor Group 1
RateLimitException.php (Working Tree) (RateLimitException.php), Editor Group 1
…
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 28
6
11
28
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
LF
UTF-8
Spaces: 4
Ln 27, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob
IN
grep -rn "RateLimitException\|LogicException\|RuntimeException" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -20
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
Bash
Find all catch blocks or instanceof checks for RateLimitException
IN
grep -rn "catch.*RateLimitException\|instanceof RateLimitException" /Users/lukas/jiminny/app/app --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:11: * Job middleware that catches RateLimitException from HubSpot API calls
/Users/lukas/jiminny/app/app/Jobs/Middleware/HandleHubspotRateLimit.php:24: } catch (RateLimitException $e) {
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:149: if (! $e instanceof RateLimitException) {
Bash
Find all test references to RateLimitException
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/tests --include="*.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:13:#[CoversClass(RateLimitException::class)]
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:14:class RateLimitExceptionTest extends TestCase
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:18: $exception = new RateLimitException();
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:28: $exception = new RateLimitException('Hubspot rate limit', 30, $previous);
/Users/lukas/jiminny/app/tests/Unit/Exceptions/RateLimitExceptionTest.php:52: $exception = new RateLimitException('test', $input);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:10:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:49: public function testPropagatesNonRateLimitExceptions(): void
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:103: throw new RateLimitException('rate limited', $retryAfter);
/Users/lukas/jiminny/app/tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php:150: throw new RateLimitException('rate limited', 1);
Bash
Check retry/failure handling in GenerateActionItemsJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php | head -30
Copy code to clipboard
OUT
13:use Jiminny\Exceptions\RateLimitException;
51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
56: $this->release(30);
Bash
Check retry/failure handling in GenerateAiCallScoringJob
IN
grep -n "RateLimitException\|retryUntil\|backoff\|maxExceptions\|maxTries\|release\|failed" /Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php | head -30
Copy code to clipboard
OUT
17:use Jiminny\Exceptions\RateLimitException;
68: RateLimitException |
75: $this->release(30);
Bash
Check retry config in MatchActivityCrmData
IN
grep -n "retryAfter\|RETRY_WINDOW\|retryUntil\|maxTries" /Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php
Copy code to clipboard
OUT
34: private const int RETRY_WINDOW_MINUTES = 30;
45: public function retryUntil(): \DateTimeInterface
47: return now()->addMinutes(self::RETRY_WINDOW_MINUTES);
77: return self::RETRY_WINDOW_MINUTES * 60 + 60;
Bash
Check the cache key format
IN
grep -n "getRateLimitCacheKey\|hubspot:ratelimit" /Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Client.php
Copy code to clipboard
OUT
78: $cacheKey = $this->getRateLimitCacheKey();
110: private function getRateLimitCacheKey(): string
112: return sprintf('hubspot:ratelimit:portal:%d', $this->config->getId());
Bash
Find other jobs that might use the rate limit middleware
IN
grep -rn "class.*Middleware\|HandleHubspotRateLimit" /Users/lukas/jiminny/app/app/Jobs --include="*.php" | grep -v "HandleHubspotRateLimit.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:18:use Jiminny\Jobs\Middleware\HandleHubspotRateLimit;
/Users/lukas/jiminny/app/app/Jobs/Crm/MatchActivityCrmData.php:42: return [new HandleHubspotRateLimit()];
Read
HubspotClientInterface.php
HubspotClientInterface.php
Thought for 73s
Thought for 73s
Now I have a complete picture. Here's my full analysis:
Review Summary
Review Summary
RuntimeException vs LogicException — Safe ✓
RuntimeException
vs
LogicException
— Safe ✓
The change is semantically correct and won't break anything.
LogicException
is for programmer errors (invalid arguments, contract violations). A rate limit from an external API is a runtime condition —
RuntimeException
is the right parent. All callers catch
RateLimitException
by name explicitly (union catches in
GenerateActionItemsJob
,
GenerateAiCallScoringJob
,
SummarizeTranscriptionJob
,
GenerateAiActivityTypeJob
) or check
instanceof RateLimitException
— none relies on the parent class type, so nothing breaks.
Issue 1 — Circuit breaker stores stale delay (most important bug)
Issue 1 — Circuit breaker stores stale delay (most important bug)
Client.php:94
Client.php:94
Copy code to clipboard
Redis::setex($cacheKey, $retryAfter, (string) $retryAfter);
The TTL is
$retryAfter
seconds, but the
stored value
is also the original
$retryAfter
. If a second job reads this cache 20 seconds later, it throws
RateLimitException(retryAfter=30)
and gets delayed 30 more seconds — even though only 10 remain. In a spike of 100 jobs, each subsequent job inflates its wait.
Fix:
store the absolute expiry timestamp, reconstruct the remaining delay when reading:
Copy code to clipboard
// on 429:
Redis::setex($cacheKey, $retryAfter, (string) (time() + $retryAfter));
// in the cached-read branch:
$remaining = max(1, (int) $cachedRetryAfter - time());
throw new RateLimitException('Hubspot rate limit (cached circuit-breaker)', $remaining);
Issue 2 — retryUntil() window may expire under sustained rate limiting
Issue 2 —
retryUntil()
window may expire under sustained rate limiting
MatchActivityCrmData.php:45-47
MatchActivityCrmData.php:45-47
retryUntil()
is calculated as
now() + 30 min
at
dispatch time
and stored in the job payload. With
MAX_RETRY_DELAY = 600s
, you only get ~3 rate-limit-triggered releases before the 30-minute window closes and the job is permanently failed. For a heavy 429 spike (daily limit, parsed as 600s), this can easily happen.
Consider increasing
RETRY_WINDOW_MINUTES
to 60 or more, or making it configurable. The
uniqueFor()
value should be updated to match.
Issue 3 — Only search() uses the circuit breaker, but other methods can still hit 429
Issue 3 — Only
search()
uses the circuit breaker, but other methods can still hit 429
Client.php:76-108
Client.php:76-108
executeRequest()
is only called from
search()
. Methods like
getOpportunityById()
,
batchReadObjects()
,
getContactByEmail()
bypass it entirely. If HubSpot's 429 is account-wide (not search-endpoint-specific), those methods will keep firing even while the circuit breaker is supposedly open. This is likely fine because the search endpoint has its own tighter quota (5 RPS), but it's worth being explicit in a comment.
Issue 4 — object $job type in middleware has no compile-time safety
Issue 4 —
object $job...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20401
|
|
20402
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20402
|
|
20403
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20403
|
|
20404
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
SlackFileEditViewGoHistoryWindowHelpAPP ()DOCKER-232,9 +235,11₴81DEV (docker)₴2APP (-zsh)-zsh* @param string SobjectType The object type ('deals','companies', 'contacts','cal* @param array<string,mixed> Spayload The search payload with filters, sorts, prop‹ereturn array Thesearch response with'results"total','paging'keys+* @throws RateLimitException When rate limit is hit* @throws HubspotException On API errors+* @return array The search response with 'results', 'total', 'paging'keyspublic function search(string SobjectType, array Spayload): arrayend diff4) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation)begin diff--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php+++/home/jiminny/app/Console/Commands/JiminnyDebugCommand.php-359,11 +359,11 @ScrmService = ScrmResolver->prepareCrmService();-//-//for (Si = 0; Si < 3; Si++) {if (Si%25 ===0) {Sthis->info("Syncing opportunity {$i}");Sthis->info("Matching contact {$i]");-//-//.ScrmService->syncOpportunity('374720564');if ($i % 25 === 0) {Sthis->info("Syncing opportunity {$1}");Sthis->info("Matching contact {Si}");//}//ScrmService->syncOpportunity('374720564');ScrmService-›matchByName('Robot');end diffFixed 4 of 5666 files in 146.870 seconds, 60.00 MB memory usedWhat's next:Try Docker Debug for seamless, persistent debugging tools in any container or image →HomeDMsActivityFilesLater..•MoreED→Jiminny ...# contusion-clinic# curiosity_lab# engineering# general# jiminny-bg# platform-tickets# product_launches# random# releases# sofia-office# support# thank-yous# the_people_of jimi...• Direct messagesP. Aneliya Angelova% Galya Dimitrova I& Petko Kashinski. Stefka StoyanovaVasil Vasilev&. Nikolay IvanovAneliya Angelova, ...Stoyan Tanev®. VesB. Lukas Kovalik y... Oi: Appsã Jira CloudToast(abl100% <78• Mon 11 May 18:23:50Describe what you are looking for# releases8 226 0• MessagesC FilesBookmarks+9353b609 - JYToday~bee402b7- JY-20395 Stop fetching ALLheaders (including file) for email importd6a0fe5a - JY-20395 lintdaa0373e - JY-20395 lint fixesaf59d609 - JY-20395 Removed no longer usedmethodsShow morejiminny/app | Added by GitHubCircleCl APP 5:11 PMDeployment Successful!Project: appWhen:05/11/202614:11:35Tag:View JobCircleCl APP 5:35 PMDeployment Successful!Project: appWhen:05/11/202614:35:58Tag:View JobMessage #releases..•...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20404
|
|
20405
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
selectionViewSOURCE CONTROCHANGESMessage aenter to commit on "J.v Changes@ .env.local• .env.nikilocal@ .env.otherE ids.txtraw sal_query.sq* WEBHOOK_FILTERING IMPLEMENT.# JiminnyDebugCommand.php app/Cl"# SimulateWebhooksCommand.php a." CreateMockAskJiminnvReportResult..« RateLimitException.php a... m b + MwMatchActivitvCrmData.oho app/Jobs... MClient.pho app/Services/Crm/Hubs….9, Mloadina.nno contial* favicon.ico public# HandleHlubsootRateLimitTest.ohv t..# CanAccessAiReportsTest.php tests/...** ClientTest.oho tests/Unit/Services/Cr.Windovoho (Workina Tree) Mw Client.ohp (Workina Tree 9,MRateLimitException.php › .nanespace Jiminny cxceptions,use ihrowable;class RateLimitException extends RuntimexceptionAAAMAnublic funct ionIv int SretryAfter = 1,parent::_construct($message, 0, $previous);MANANApublic function getRetryAfter(): intreturn max Sthis->retryAfter, 1:S0 l100% LzMon 11 May 18:23:500 000MatchActivitvCrmData.php (Workina Tree) MwMatchActivitvcrmData.phoRateLimitException.php (Working Tree) Mnamesnace Jiminnvl Excentions.use Throwable;class RateLimitException extends RuntimeExceptionprivate readonly int SretrvAfter:nublic functionconst ruct** Review rate limit handli..Review rate limit handling for HubSpot jo.Here are code reveiw suggestions: IssuesNow run all affected tests to verify everything passes:Bash Run all affected tests0, $previous);Sthis-sretrvAfter = max1. SretrvAfter):public function getRetryAfter(): intreturn Sthis->retryAfter:GRAPHP9Auto @÷J1CO JY-20725 add m.• JY-20725 add tests Lukas Kovali!• JY-20725 add HS rate limit handling on a..io Merge branch masterMerae branch 'master' into .JY-20818.Merae oull reauest #12057 from limin….•JY-20819• Increase download transer…JY.20818 move ask liminnv renorts to..Merae null reauest #12052 from limin….Morao hranch Imactorl into.IV.20917Morao null roauoct #12047 from limin• IY.20662 roturn void ilierIY.2066) Pomoved word honct naraJY-20817: Fix deleting old tracks mih...Merge pull request #12043 from jimin..Merge branch 'master' into JY-19938...Merge pull request #12044 from Jimin…y 10000 Addod cancont informatinnIv 10029 reorder array map ilianl 10020. Addeace DD rawidu AammalJY-19938 lint fixes iliandle-HS-search-rate-limit* ©@6 A 11© 28IClfentTest.ohnot/Padination/HubsnotPaainationServiceTect.ohnAl CommandmunninginbackaroundwilthTD.bhu9az8vk.Outout.sbeing_waitten_to./naivate/tmo//alaude-501/_Isers_lmkas-fiminnv-aon//cae817bd-3<48-4663-h336-2fi1dBash Check test outoutcat/ortvate/mo/ claude=50u/-Users-Lukas=11m1nny=app/cae81700=3C48-4C63-0336-211d87412e4d/Aasks/bhugaz8vk.output 22 dev null ta1l =30OUT PHPUnit 11.5.55 by Sebastian Bergmann and contributors.PHP 8.3.30• Thought for 2s >• All 120 tests pass. Here's a summary of every change made to address the review feedback:Issue 1 - Batch APl calls bypass rate-limit handlingbatchRead0bjects() now wrapsthe $batchConfig['api']->read(...) call inside executeRequest() , so 429s from batch endpoints are caught by thesame circuit-breaker logic. A dedicated catch (RateLimitException $e) { throw $e; } before the general catch ensures the rate-limit exception propagates to the jobmiddleware instead of being swallowed by handleBatchError() and re-wrapped as CrmException .Iccue 2 — Micleadina cache kev nameClient.php:120 - Renamed hubspot:ratelimit:portal:%d → hubspot:ratelimit:confiq:%d. The key was already scoped to the config record ID (not a HubSpot portal ID):the name now matches the intent. The correspondina strina in ClientTest,oho was vodated to match.Issue 3 - isHubspotRateLimit() and parseRetryAfter() visibilityClient.php:123,137 - Both methods changed from public to private. Neither is in the interface and nothing outside executeRequest( ) calls them. The direct tests inClientTest.php were updated to invoke them via ReflectionMethod through two small private helper methods (callIsHubspotRateLimit. callParseRetryAfter).preserving all the edge-case coverageIssue 5 - Test constants duolicated from production codewith comments le.o. 'expectedmax = 665,// 600 + 5 jitter). If the middleware constants change, these tests will now fail rather than silently pass against stale expectedvaluesIssue 6 - Double-clamoina in RateLimitExcentionPatalllimitiSycontilan nharTho damnina mavodito tho construator(thte travlitar e myll(zavazal Tho nranodvlle na landot a nramatod naramator /whichIssue 7 - Non-obvious RateLimitExcention pathin failed(olMatchActivitvCrmData.ohp:172 — Added a three-line comment explaining that RateLimitException onlv reaches failed() when retrvüntil() expires while the iob is stillheld in the released state, because the middleware calls release() rather than re-throwing.9 Ece to focuc or unfocuc Claudel+•• | 0 RateLimitException.phgLn 27, Col 1 Spaces: 4 UTF-8 LF PHP 88 Sign In 8.3 P...
|
Code
|
RateLimitException.php (Working Tree) (RateLimitEx RateLimitException.php (Working Tree) (RateLimitException.php) — app — Modified...
|
NULL
|
20405
|
|
18702
|
selectionViewWindovPreparation for Refi... in 20 m selectionViewWindovPreparation for Refi... in 20 m100% C Q. Mon 11 May 14:40:59• 2 CEXPLORERV Appv Jobs# MatchActivitvCrmData.pho M# RateLimitException.php M Xapp › Exceptions > RateLimitException.php › .k?phpdeclare(strict tvoes=1):Dv *™ M .wImponOpponunitybaich.ono## ProcessHubspotWebhookEventsTraitwProcessinternalWebhookEventsJob.o……[EMAIL]# UpdateDealWebhookSubscriptionJo..• [EMAIL] CheckAndRetrvRemoteMatch.onv# CreateFollowuoActivitv.oho# MatchActivitiesToNewOpportunity.phpi MatchActivitvCrmData.ohn& Notedhiect nhn8. SaveActivitv nhn# SaveTranscription.php|& Setunl avout nhn€ SuncActivitv nhnlSyncFieldMetadata.php• [EMAIL]# SyncLeads.phpSuncObiects.phoR# SyncOpportunitiesJob.php## SyncOpportunity.phpRR SyncProfileMetadata.phpR# SyncTeamFieldsJob.phpR# SyncTeamMetadata.php# UpdateOpportunitySpecitications.phpwUpdateStage.phu→ DealRisks• MeetinaBot)• Streaminal→ Team→ TelenhonvUser# RaseProcessina.lob.nhn# DummyJob.php#ImnortRecallA|Recordinas.lob.nhn#ImnortRemoteTrack.lob.nhnlob.nhn# JobDispatcher.php# lohnicnatchorintorfaco nhnTIMELINGiê JY-20725-handle-HS-search-rate-limit*+ Co@0A0use inrowaolerpublic functionrivatereddonty ant precrynrter = .Tinrowaole sprevious = nutl,parent:: construct Smessage, , Sprevious=oublic function detRetrvafterorintreturn maylCthic_sretrvAfter.1)+* You have Docker installed on vour svstem. Do vou want toinstall the recommended extensions from Microsoft for itaShow RecommendationsSpaces: 4 UTF-80 PHP 88 Sign In 8.3...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
18702
|
|
18705
|
CodeFileEditSelectionViewGoRunTerminalWindowHelp§ CodeFileEditSelectionViewGoRunTerminalWindowHelp§ Preparation for Refi... in 19 mDEV (docker)-zshDOCKERO ₴1DEV (docker)$2APP (-zsh)H3compiledeventsroutesviewsJiminny-worker-processing-2:j1minny-worker-processing-2_00: stoppedjiminny-worker-processing-3:jiminny-worker-processing-3_00: stoppedjiminny-worker-processing-4:jiminny-worker-processing-4_00: stoppedjiminny-worker-processing-5:jiminny-worker-processing-5_00: stoppedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00:stoppedworker-analytics:worker-analytics_00: stoppedworker-audio:worker-audio_00: stoppedworker-crm-update:worker-crm-update_00: stoppedworker-download:worker-download_00:stoppedworker-nudges:worker-nudges_00:stoppedjiminny-worker-processing-1:jiminny-worker-processing-1_00: stoppedworker:worker_00: stoppedworker-calendar:worker-calendar_00:stoppedworker-conferences:worker-conferences_00: stoppedworker-crm-sync:worker-crm-sync_00:stoppedworker-emails:worker-emails_00: stoppedworker-es-update:worker-es-update_00: stoppedartisan-schedule:artisan-schedule_00: stoppedartisan-schedule:artisan-schedule_00: startedjiminny-worker-processing-1:jiminny-worker-processing-1_00: startedjiminny-worker-processing-2:jiminny-worker-processing-2_00: startedjiminny-worker-processing-3:jiminny-worker-processing-3_00: startedjiminny-worker-processing-4:jiminny-worker-processing-4_00: startedjiminny-worker-processing-5:jiminny-worker-processing-5_00: startedjiminny-worker-processing-delayed: jiminny-worker-processing-delayed_00: startedworker:worker_00: startedworker-analytics:worker-analytics_00: startedworker-audio:worker-audio_00: startedworker-calendar:worker-calendar_00:startedworker-conferences:worker-conferences_00: startedworker-crm-sync:worker-crm-sync_00: startedworker-crm-update:worker-crm-update_00: startedworker-download:worker-download_00: startedworker-emails:worker-emails_00: startedworker-es-update:worker-es-update_00:startedworker-nudges:worker-nudges_00: startedroot@docker_lamp_1:/home/jiminny#php artisan jiminny: debugDispatching 100 MatchActivityCrmDatajobs (portal=2)Done.Watch logs and runjiminny:debug observeRateLimit to inspect cachestate.root@docker_lamp_1:/home/jiminny# ]84-zshX5100% <78• Mon 11 May 14:41:06T81-zsh+screenpipe"O 8861.79ms DONE2.06ms DONE0.85ms DONE4.12ms DONEDEV...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
18705
|
|
18706
|
Explorer (⇧⌘E)
Search (⇧⌘F)
selection40 hl# Pr Explorer (⇧⌘E)
Search (⇧⌘F)
selection40 hl# Preparation for Refi... in 19 m100% C Q. Mon 11 May 14:41:12HandleHubsp# MatchActivitvCrmData.pho Mapp › Exceptions > RateLimitException.php › .# RateLimitException.php M XDv *™ M ..V Appexceptions## HttpForbiddenException.php#R HttpMethodNotAllowedException.php# HttoNotFoundExcention.ohn#- HttnSessionSxoiredEycention.ohn# HttpUnauthorizedException.php#R HttpUnsupportedFormatException.php# InvalidArgumentException.php# InvalidDataException.php• InvalidEnumException.php# InvalidFileException.php• InvalidTeamSettingException.png• IobTimeoutException.pngw Logicexception.php* Maxleamlralsizetxceededexception.php• ModelNotFoundException.php* NoResultsexception.phpwNotimolemented=xception.ohowNorsupported=xception.oho# NumberUnavailableException.ohvwOperationException.ohv#OutOfBoundsExcention.ohv* QuotaExceededException.ohvReaistrationinvitationMismatch=xceotio..* Request@ueuedForDeferredExecution.o.# RingCentralException.php# RingCentralExtensionNotFound.php* RuntimeSxcention.ohnl#R SequenceNumberException.php# ServicelntegrationException.php# ServiceUnavailableException.php# SidekickSottinacEycention.nhrSocialAccountNotEoundEycention.nhnl## SocialAccountTokenInvalidException.php• SuncActivitvException.php# TenantisolationException.php• ToytPelavExcention.php" TooManvFailedActivities.phpTranscriptionNotindexedException.php" UnexpectedCallException.phn« UnexpectedEloquentModelException.phpwUnexoectedValueException.ohgwZipAttackException.ohv• FFMoeaOUTIINETIMELINGiê JY-20725-handle-HS-search-rate-limit*+ Codeclare(strict tvoes=1):use inrowable,public functionprivatereddonty ant srecryarter = 1Tinrowaole sprevious = nutl,parent:: construct Smessage, , Sprevious=oublic function detRetrvaftero: intreturn maylcthic_sretrvAfter.1)+* You have Docker installed on vour svstem. Do vou want toinstall the recommended extensions from Microsoft for itaSpaces: 4ute.e(3 PHP 88 SignIn 8.3...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
18706
|
|
18730
|
selectionS0 hhi# Preparation for Refi... in 18 m10 selectionS0 hhi# Preparation for Refi... in 18 m100% C49. Mon 11 May 14:42:17EXPLORERV APPv appexceptions## HttpForbiddenException.php#R HttpMethodNotAllowedException.php# HttoNotFoundExcention.ohn#- HttnSessionSxoiredEycention.ohn# HttpUnauthorizedException.php#R HttpUnsupportedFormatException.php# InvalidArgumentException.php# InvalidDataException.php• InvalidEnumException.php# InvalidFileException.php• InvalidTeamSettingException.png• IobTimeoutException.png# LogicException.php* MaxTeamTrialSizeExceededException.php• ModelNotFoundException.php# NoResultsException.phpNotimplementedException.phn# NotSupportedException.php# NumberUnavailableException.ohvwOperationException.ohv#OutOfBoundsExcention.ohv* QuotaExceededException.ohvReaistrationinvitationMismatch=xceotio..* Request@ueuedForDeferredExecution.o.# ResoonseSxcention.oho# RingCentralException.php# RingCentralExtensionNotFound.php* RuntimeSxcention.ohnl#R SequenceNumberException.php# ServicelntegrationException.php# ServiceUnavailableException.php• SidekickSottinacEycention.nhr# SocialAccountNotFoundException.php## SocialAccountTokenInvalidException.php• SuncActivitvException.php• TonanticolationException.php• ToytPelavExcention.php" TooManvFailedActivities.phpTranscriptionNotindexedException.php" UnexpectedCallException.php« UnexpectedEloquentModelException.php" UnexpectedValueException.phrZipAttackException.phr• FFMoeaOUTIINETIMELINGiê JY-20725-handle-HS-search-rate-limit*+ Co@2A902|# MatchActivitvCrmData.pho M# RateLimitException.ph M x• HandleHubspotRateLimit.php Mapp › Exceptions > RateLimitException.php › .e Client.php 9, MRateLimitException.php - app - Modified## HubspotPaginationService.php M•2 C;Dv *™ M ..use inrowaolerclass RatelimitExcent ion extends RuntimeSxcentionistrina smessade = !private readonly int SretrvAfter = 1parent:: constructismessage, , sprevious;public function getRetryAfter(): intrecurn max sthis->recryatter 1* You have Docker installed on vour svstem. Do vou want toinstall the recommended extensions from Microsoft for itaSpaces: 4ute.e(3 PHP 88 SignIn 8.3...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
18730
|
|
18773
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 22 pending changes
22
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
Handler.php
HttpBadRequestException.php
HttpBadRequestWithErrorReasonException.php
HttpForbiddenException.php
HttpMethodNotAllowedException.php
HttpNotFoundException.php
HttpSessionExpiredException.php
HttpUnauthorizedException.php
HttpUnsupportedFormatException.php
InvalidArgumentException.php
InvalidDataException.php
InvalidEnumException.php
InvalidFileException.php
InvalidTeamSettingException.php
JobTimeoutException.php
LogicException.php
MaxTeamTrialSizeExceededException.php
ModelNotFoundException.php
NoResultsException.php
NotImplementedException.php
NotSupportedException.php
NumberUnavailableException.php
OperationException.php
OutOfBoundsException.php
QuotaExceededException.php
RateLimitException.php
M
RegistrationInvitationMismatchException.php
RequestQueuedForDeferredExecution.php
ResponseException.php
RingCentralException.php
RingCentralExtensionNotFound.php...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
18773
|
|
18774
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 22 pending changes
22
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
EXPLORER
EXPLORER
Explorer Section: app
Explorer Section: app
APP
Handler.php
HttpBadRequestException.php
HttpBadRequestWithErrorReasonException.php
HttpForbiddenException.php
HttpMethodNotAllowedException.php
HttpNotFoundException.php
HttpSessionExpiredException.php
HttpUnauthorizedException.php
HttpUnsupportedFormatException.php
InvalidArgumentException.php
InvalidDataException.php
InvalidEnumException.php
InvalidFileException.php
InvalidTeamSettingException.php
JobTimeoutException.php
LogicException.php
MaxTeamTrialSizeExceededException.php
...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
18774
|
|
19008
|
50 ll"Preoaraton tor kerl... now100% Lz8• Mon 50 ll"Preoaraton tor kerl... now100% Lz8• Mon 11 May 15:09:37*EXPLORERV APPvcrm› Deletev HubspotTraitswFetchmergedObiectsPageJob.php#HubspotAppUninstallJob.phpwImportaccountBatch.php#8 ImportBatchJobTrait.phpwmoortcontact8atch.onv# ImportOpportunityBatch.php# ProcessHubsootWebhookEventsTrait.# ProcessinternalWebhookEventsJob.p…## ProcessMergedObjectJob.phpR ProcessWebhookEventsJob.php#UindateDealWehhookSubccrintion.lo> SalesforceR AutologDelayedToCrm.phpCheckAndRetryRemoteMatch.phpCreateFollowupActivity.phpCreateNotes.phpMatchActivitiesToNewOpportunity.phpR MatchActivityCrmData.php* [EMAIL] SaveActivity.phpR SaveTranscription.phpR# SetupLayout.php* SyncActivity.phpR# SyncFieldMetadata.php* SyncHubspotObjects.phpwsuncLeads.on#[EMAIL]#[EMAIL]# SyncOpportunity.php#SvncProfileMetadata.oho#SvncteamFields.Job.ohvI SvncTeamMetadata.ohn#4 UpdateOpportunitySpecifications.php|« UndateStaae.nhnDealPicks> Mailbox> MeetingBotV Middleware* HandleHubspotRateLimit.php# RateLimited.php> OUTLINETIMELING18UAUNN43PA JY-20725-handle-HS-search-rate-limit*+ Go@6A90г#MatchActivitvCrmData.oho MXR RateLimitException.php M Xapp > Jobs › Crm > « MatchActivityCrmData.php > 9 MatchActivityCrmData# Client.pho 9,M# HubspotPaqinationService.oho Mminatel Contracts) Queue ShouldBeUnique:rializesModels;Jiminny component queuexconstantsJaminny excepcions lenva uldArgumentexcepeton,Jiminny Exceptions RateL1m1texcept1on;Jiminny Jobs Middleware HandleHubspotRateLimit:use Jiminnv Models\ Crml Confiauration:use liminnvlRenocitoriec/ActivitvRenositorv:class MatchActivityCrmData extends Job implements ShouldQueue, ShouldBeUniqueuse Interactsw1thQueue:public int $maxExceptions = 3;nrivate const int RETRY WINDOW MINUTES = 120:orivate int sactivitvidprivate ?Configuration SfromConfiguration;orivate bool SremoteSearch:pub uic tunction middlewared: arravpublzc Tunction retryuntzll): (Datelameinterfacereturn nowo-saddMinutes(self::RETRY WINDOW MINUTES)public function• 2 C23 Review rate limit handli..Keview fate lmit nanaling for nuospouo..</> MatchActivityCrmData.ph…Idon uunderstandlt. Isntthat too much olla window to wait. Lets ust seelit on the scenario. 100 000 matchActvityermData obs tired lautne same time making 100 000 search requests. What willnappenrandwhen2. Throws RateLimitException(remaining) - no HubSpot call made3. Middleware releases with delay = remaining4. Worker is free in ~50msAt 50ms per job cycle, 10 workers process ~2,000 jobs in 10 seconds. All 2,000 are re-released with delays clustered around when the cache expires (t=10). The remaining 98,000 jobs are still untouched inthe queue.Progress so far: 0 jobs completed.t=10 to t=20 - Second wave, same problemCache expires at t=10. The 2,010 released jobs (first 10 + 2,000 cache-bounced) become available. Workers grab 10 of them simultaneously. Cache miss again — all 10 hit HubSpot at the same instant.Another 429. Cache resets to expiresAt=20, TTL=30 .The cycle repeats. Workers rapidly burn through the released jobs (all hitting the new cache), then the pattern resets at t=20.The MathHubSpot's 5 RPS means ~50 requests per 10-second window. But 10 workers tire simultaneously at the start of each window, so in practice vou aet• Best case: 5 succeed before the 429, 5 get recycled → 5 completions per 10-second cycle• Realistic: thundering nerd means the first burst is orten o successes, 10 429S - ~0→o completions per cycleCalll it 3 comoletions cvcle on averade.Window Jobs comoleted Joos remainina Tlime elaosedi30 min~540-99,46030 min120 min ~2.1605.5 hours ~10,000-97840-90,0002 hoursAfter 120 minutes ( retryUntil() deadline), ~97,840 jobs permanently fail. Laravel marks them as failed, calls failed() , done.So ls 120 Minutes Wrong?It's not wrong — it's just that retryUntil() is the wrong lever for this problem. It's a safety valve ("don't let jobs loop forever"), not a throughput mechanism. No retryUntil() value fixes the root issue,which is.10 workers fire simultaneously at the start of every rate-limit window, burning the entire burst budget in one shot, then setting a cache that blocks everyone for 10 more seconds.The circuit breaker with the fixed TTL (our change) reduces wasted HubSpot calls significantly - but the thundering herd at each cache expiry still kills throughput.The realfix for 1001000liobslis a.queue.throttle-somethinalikellaravells RateEimiiter.ocaRedis-backed.semanhore.that.cans.how.manv.workers.can.callHTbSnot.ner secondlaloballv.not.nerdiob.Tihafta separate, larger change. For the current scope, 120 minutes is a reasonable guard - just be aware it won't save 100k jobs in a true spike.ok burt I don't underctand the delav Alco lets cav that there are 100 reauecte to hubcnot firct aets 120should be set witt ttl form teh first job that hit the limit. if it is constantlyupdated wew ill neverree it. Think again very carefullv about the whole flow., do I need 10 minuteshuftor lunderctand to have coom iittor in the+0" 1 line selectedAsk before edit.g SignInP A...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
19008
|
|
20341
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G)
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies
U
ClientTest.php
tests/Unit/Services/Crm/Hubspot
M
Graph Section
GRAPH
GRAPH
JY-20725 add more tests
Lukas Kovalik
JY-20725-handle-HS-search-rate-limit
JY-20725 add tests
Lukas Kovalik
JY-20725 add HS rate limit handling on activities rematching
Lukas Kovalik
Merge pull request #12056 from jiminny/JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
origin/master
Merge branch 'master' into JY-20818-move-AJ-reports-to-separated-datadog-metric
Lukas Kovalik
Merge pull request #12057 from jiminny/JY-20819-increase-download-transctip-rate-limit
mihailmihaylovjiminny
JY-20819: Increase download transcription rate limit
mihail.mihaylov
JY-20818 move ask jiminny reports to its own datadog metric
Lukas Kovalik
Merge pull request #12052 from jiminny/JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge branch 'master' into JY-20817-fix-deleting-old-tracks
mihailmihaylovjiminny
Merge pull request #12047 from jiminny/JY-20662-remove-word-boost
ilian-jiminny
JY-20662 return void
ilian
JY-20662 Removed word_boost parameter from Assembly transcription request
ilian
JY-20817: Fix deleting old tracks
mihail.mihaylov
Merge pull request #12043 from jiminny/JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge branch 'master' into JY-19938-bot-status-in-csv-es
ilian-jiminny
Merge pull request #12044 from jiminny/JY-19938-ES-mapping-update
ilian-jiminny
JY-19938 Added consent information and recording error reason to Elastic Search mapping
ilian
JY-19938 reorder array map
ilian
JY-19938: Address PR review comments
ilian
JY-19938 lint fixes
ilian
HandleHubspotRateLimitTest.php (Working Tree) (HandleHubspotRateLimitTest.php), Editor Group 1
ClientTest.php (Working Tree) (ClientTest.php), Editor Group 1
Client.php (Working Tree) (Client.php), Editor Group 1
RateLimitException.php, preview, Editor Group 1
MatchActivityCrmData.php (Working Tree) (MatchActivityCrmData.php), Editor Group 1
RateLimitException.php (Working Tree) (RateLimitException.php), Editor Group 1
…
<?php
declare(strict_types=1);
namespace Jiminny\Exceptions;
use Throwable;
class RateLimitException extends RuntimeException
{
private readonly int $retryAfter;
public function __construct(
string $message = '',
int $retryAfter = 1,
?Throwable $previous = null,
) {
parent::__construct($message, 0, $previous);
$this->retryAfter = max(1, $retryAfter);
}
public function getRetryAfter(): int
{
return $this->retryAfter;
}
}
<?php
declare(strict_types=1);
namespace Jiminny\Exceptions;
use Throwable;
class RateLimitException extends RuntimeException
{
private readonly int $retryAfter;
public function __construct(
string $message = '',
int $retryAfter = 1,
?Throwable $previous = null,
) {
parent::__construct($message, 0, $previous);
$this->retryAfter = max(1, $retryAfter);
}
public function getRetryAfter(): int
{
return $this->retryAfter;
}
}
Review rate limit handli…, Editor Group 2
remote
app (Git) - JY-20725-handle-HS-search-rate-limit*, Checkout Branch/Tag...
JY-20725-handle-HS-search-rate-limit*
app (Git) - Synchronize Changes
Errors: 6, Warnings: 11, Infos: 28
6
11
28
Notifications
key, PHP extension: Premium features not active.
8.3, Language Level: 8.3
Sign In
Sign In
PHP
Editor Language Status: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Diff editor
Clear
Review rate limit handling for HubSpot job queue
Session history
New session
Message actions
RateLimitException.php#9-9
RateLimitException.php#9-9
Reveiw the diff. Mostly
@app/Jobs/Crm/MatchActivityCrmData.php
,
@app/Exceptions/RateLimitException.php
,
@app/Jobs/Middleware/HandleHubspotRateLimit.php
,
@app/Services/Crm/Hubspot/Client.php
and
@app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php
. The issue is I am trying to make sure that instant spike of MatchActivityCrmData jobs willl handle 429 exceptions from hubspot. Revewi ti carefully and try to see potential issues and bottlenecks. Also RateLimitException was changerd from LogicException to RuntimeException. Is it ok. This exception is used by other paerts of code. Will ti break anything?
Thought for 5s
Thought for 5s
I'll review the implementation carefully. Let me first check how
RateLimitException
is used elsewhere and look at the test files and
PaginationState
.
Bash
Find all usages of RateLimitException outside the changed files
IN
grep -rn "RateLimitException" /Users/lukas/jiminny/app/app --include="*.php" | grep -v "HandleHubspotRateLimit\|MatchActivityCrmData\|Client.php\|RateLimitException.php"
Copy code to clipboard
OUT
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:13:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/ActionItems/Jobs/GenerateActionItemsJob.php:51: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:17:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiCallScoring/Jobs/GenerateAiCallScoringJob.php:68: RateLimitException |
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:15:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/TranscriptionSummary/Jobs/SummarizeTranscriptionJob.php:58: GuzzleException|HttpBadRequestException|JsonException|RateLimitException|UnexpectedValueException $exception
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:19:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Component/AiActivityType/Jobs/GenerateAiActivityTypeJob.php:76: RateLimitException |
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:8:use Jiminny\Exceptions\RateLimitException;
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/HubspotClientInterface.php:50: * @throws RateLimitException When rate limit is hit
/Users/lukas/jiminny/app/app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php:195: // RateLimitException and other exceptions are re-thrown as-is
Read
PaginationState.php
PaginationState.php
Read
HandleHubspotRateLimitTest.php
HandleHubspotRateLimitTest.php
Bash
Check how RateLimitException is used in GenerateActionItemsJob...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
20341
|
|
20342
|
Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧ Explorer (⇧⌘E)
Search (⇧⌘F)
Source Control (⌃⇧G) - 17 pending changes
17
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update
2
Testing
Claude Code
SOURCE CONTROL
SOURCE CONTROL
Changes Section
CHANGES
CHANGES
Commit Changes on "JY-20725-handle-HS-search-rate-limit"
Commit
More Actions...
Changes
17
.env.local
M
.env.nikilocal
U
.env.other
U
ids.txt
U
raw_sql_query.sql
U
WEBHOOK_FILTERING_IMPLEMENTATION.md
U
JiminnyDebugCommand.php
app/Console/Commands
M
SimulateWebhooksCommand.php
app/Console/Commands/Crm/Hubspot
U
CreateMockAskJiminnyReportResultCommand.php
app/Console/Commands/Reports
U
RateLimitException.php
app/Exceptions
M
MatchActivityCrmData.php
app/Jobs/Crm
M
Client.php
app/Services/Crm/Hubspot
9, M
logging.php
config
M
favicon.ico
public
U
HandleHubspotRateLimitTest.php
tests/Unit/Jobs/Middleware
M
CanAccessAiReportsTest.php
tests/Unit/Policies
U
ClientTest.php
tests/Unit/Services/Crm/Hubspot
M
Graph Section...
|
Code
|
RateLimitException.php — app — Modified
|
NULL
|
20342
|